gentoo: use /var/run for new /run compatibility
[util-vserver.git] / sysv / util-vserver
index fe0be29..d791aa5 100755 (executable)
@@ -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,41 +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`; 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`; 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 `getPhysicalDir "$__PKGSTATEREVDIR"`
-}
-
 function start()
 {
     _beginResult $"Creating required directories"
@@ -62,8 +37,13 @@ function start()
     _endResult $?
     local retval=$?
     _beginResult $"Loading default device map"
-    loadDeviceMap 0 "$__CONFDIR/.defaults/apps/vdevmap"
+    handleDeviceMap --set 0 "$__CONFDIR/.defaults/apps/vdevmap"
     _endResult $?
+    if hasCgroup; then
+       _beginResult $"Mounting cgroup-hierarchy"
+       mount_cgroup
+       _endResult $?
+    fi
     test "$retval" -ne 0 || touch "$lockfile"
     return $retval
 }
@@ -78,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
 }