X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=sysv%2Futil-vserver;h=d791aa5fd77557c660df4979635f217f1a1fd705;hb=c0ea11d48d9bf2c27ab89c41012a00b206b6bbf0;hp=4f7f035a7cdc0cbcdd4cc26d3d2b6b3c765d585d;hpb=e5d96f93d0de60ca5fe2f30c09aef449e39e3e89;p=util-vserver.git diff --git a/sysv/util-vserver b/sysv/util-vserver index 4f7f035..d791aa5 100755 --- a/sysv/util-vserver +++ b/sysv/util-vserver @@ -4,6 +4,16 @@ # # chkconfig: 2345 10 90 # description: Sets the path to vshelper and kills all guest processes +# +### BEGIN INIT INFO +# Provides: util-vserver +# Required-Start: $remote_fs $syslog $time +# Required-Stop: $remote_fs $syslog $time +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: Sets the path to vshelper and kills all guest processes +# Description: Sets the path to vshelper and kills all guest processes +### END INIT INFO : ${UTIL_VSERVER_VARS:=/usr/lib/util-vserver/util-vserver-vars} test -e "$UTIL_VSERVER_VARS" || { @@ -17,49 +27,6 @@ LOCKFILE=util-vserver . "$_LIB_FUNCTIONS" . "$__PKGLIBDIR/vserver.functions" - -function set_helper() -{ - local f="/proc/sys/kernel/vshelper" - if test -e "$f"; then - echo "$_VSHELPER" > "$f" - return 0 - else - return 2 - fi -} - -function kill_contexts() -{ - local xid - for xid in `ls -1 /proc/virtual 2>/dev/null`; do - test "$xid" = "info" -o "$xid" = "status" && continue - $_VATTRIBUTE --xid $xid --set --flag ~persistent - $_VKILL --xid $xid -s 15 - sleep 3 - $_VKILL --xid $xid -s 9 - done - local alive=0 - for xid in `ls -1 /proc/virtual 2>/dev/null`; do - test "$xid" = "info" -o "$xid" = "status" && continue - let alive+=1 - done - test $alive = 0 -} - -function create_dirs() -{ - $_MKDIR -p "$__RUNDIR" && $_MKDIR -p "$__VSHELPERSTATEDIR" && $_MKDIR -p `$_READLINK "$__PKGSTATEREVDIR"` -} - -function mount_cgroup() -{ - _generateCgroupOptions - test -n "$CGROUP_MNT" || return 0 - $_MKDIR -p "$CGROUP_MNT" - $_MOUNT -t cgroup -o "$CGROUP_SUBSYS" vserver "$CGROUP_MNT" -} - function start() { _beginResult $"Creating required directories" @@ -91,6 +58,11 @@ function stop() kill_contexts _endResult $? local retval=$? + if hasCgroup; then + _beginResult $"Unmounting cgroup-hierarchy" + umount_cgroup + _endResult $? + fi $_RM -f "$lockfile" return $retval }