SOURCES: util-vserver.init (NEW) - set vshelper path, kill all contexts on ...

baggins baggins at pld-linux.org
Sat Nov 22 01:57:21 CET 2008


Author: baggins                      Date: Sat Nov 22 00:57:21 2008 GMT
Module: SOURCES                       Tag: HEAD
---- Log message:
- set vshelper path, kill all contexts on stop

---- Files affected:
SOURCES:
   util-vserver.init (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: SOURCES/util-vserver.init
diff -u /dev/null SOURCES/util-vserver.init:1.1
--- /dev/null	Sat Nov 22 01:57:21 2008
+++ SOURCES/util-vserver.init	Sat Nov 22 01:57:15 2008
@@ -0,0 +1,103 @@
+#!/bin/sh
+#
+# util-vserver:	sets the path to vshelper and kills all guest processes
+#
+# chkconfig:	2345 10 99
+# description:	Sets the path to vshelper and kills all guest processes
+
+# Source function library
+. /etc/rc.d/init.d/functions
+
+[ -n "$UTIL_VSERVER_VARS" ] || UTIL_VSERVER_VARS=/usr/lib/util-vserver/util-vserver-vars
+if [ ! -e "$UTIL_VSERVER_VARS" ] ; then
+	echo "Can not find util-vserver installation (the file '$UTIL_VSERVER_VARS' would be expected); aborting..." >&2
+	exit 1
+fi
+. "$UTIL_VSERVER_VARS"
+
+start()
+{
+	show "Setting path to vshelper"
+	if [ -e /proc/sys/kernel/vshelper ]; then
+		echo "$_VSHELPER" >/proc/sys/kernel/vshelper
+		ok
+	else
+		fail
+	fi
+	run_cmd "Loading default device map" $__PKGLIBDIR/bash-wrapper "handleDeviceMap --set 0 $__CONFDIR/.defaults/apps/vdevmap"
+}
+
+# Stop all running, but non-default guests"
+stop()
+{
+	run_cmd "Stopping all running guests" $_START_VSERVERS -j 1 --all --stop
+
+	xids=$(cd /proc/virtual ; echo [0-9]*)
+	if [ -n "$xids" ]; then
+		show "Sending all contexts the TERM signal"
+		for xid in $xids; do
+			$_VATTRIBUTE --xid $xid --set --flag ~persistent
+			$_VKILL --xid $xid -s 15
+		done
+		xids=$(cd /proc/virtual ; echo [0-9]*)
+		if [ -n "$xids" ]; then
+			fail
+		else
+			ok
+		fi
+	fi
+	if [ -n "$xids" ]; then
+		sleep 5
+		show "Sending all contexts the KILL signal"
+		for xid in $xids; do
+			$_VATTRIBUTE --xid $xid --set --flag ~persistent
+			$_VKILL --xid $xid -s 9
+		done
+		xids=$(cd /proc/virtual ; echo [0-9]*)
+		if [ -n "$xids" ]; then
+			fail
+		else
+			ok
+		fi
+	fi
+}
+
+RETVAL=0
+# See how we were called.
+case "$1" in
+  start)
+	start
+	;;
+  stop)
+	stop
+	;;
+  restart)
+	stop
+	start
+	;;
+  reload|force-reload)
+	start
+	[ $? -ne 0 ] && RETVAL=7
+	;;
+  status)
+	if [ -e /proc/sys/kernel/vshelper ]; then
+		read _vsh </proc/sys/kernel/vshelper
+		show "Path to vshelper: $_vsh, expected: $_VSHELPER"
+		if [ "$_vsh" = "$_VSHELPER" ]; then
+			ok
+			RETVAL=0
+		else
+			fail
+			RETVAL=1
+		fi
+	else
+		RETVAL=1
+	fi
+	;;
+  *)
+	msg_usage "$0 {start|stop|restart|reload|force-reload|status}"
+	exit 3
+	;;
+esac
+
+exit $RETVAL
================================================================


More information about the pld-cvs-commit mailing list