gentoo: use /var/run for new /run compatibility
[util-vserver.git] / gentoo / util-vserver
index 1827326..ce9d1ad 100644 (file)
@@ -2,71 +2,60 @@
 # Copyright 1999-2007 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
-set_helper() {
-       local f="/proc/sys/kernel/vshelper"
-       if [ -e "$f" ]; then
-               echo "$_VSHELPER" > "$f"
-       fi
-       return 0
-}
-
-kill_contexts() {
-       local xid
-       for xid in `ls -1 /proc/virtual`; do
-               [ "$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
-               [ "$xid" = "info" -o "$xid" = "status" ] && continue
-               let alive+=1
-       done
-       return $alive
-}
-
 start() {
        : ${UTIL_VSERVER_VARS:=/usr/lib/util-vserver/util-vserver-vars}
-       if [[ ! -e ${UTIL_VSERVER_VARS} ]]; then
+       if [ ! -e ${UTIL_VSERVER_VARS} ]; then
                eerror "Cannot find util-vserver installation"
                eerror "(the file '$UTIL_VSERVER_VARS' would be expected)"
                return 1
        fi
        
-       source ${UTIL_VSERVER_VARS}
-       source "$_LIB_FUNCTIONS"
-       source "$__PKGLIBDIR/vserver.functions"
+       . ${UTIL_VSERVER_VARS}
+
+       ebegin "Creating directories for $PACKAGE_NAME"
+    $__PKGLIBDIR/bash-wrapper 'create_dirs'
+       eend $?
 
        ebegin "Setting vshelper path to $_VSHELPER"
-       set_helper
+    $__PKGLIBDIR/bash-wrapper 'set_helper'
        eend $?
 
        ebegin "Loading default device map"
-       loadDeviceMap 0 "$__CONFDIR/.defaults/apps/vdevmap"
+       $__PKGLIBDIR/bash-wrapper 'handleDeviceMap --set 0 "$__CONFDIR/.defaults/apps/vdevmap"'
        eend $?
+
+       $__PKGLIBDIR/bash-wrapper 'hasCgroup'
+       if [ $? -eq 0 ]; then
+               ebegin "Mounting cgroup-hierarchy"
+               $__PKGLIBDIR/bash-wrapper 'mount_cgroup'
+               eend $?
+       fi
 }
 
 stop() {
        : ${UTIL_VSERVER_VARS:=/usr/lib/util-vserver/util-vserver-vars}
-       if [[ ! -e ${UTIL_VSERVER_VARS} ]]; then
+       if [ ! -e ${UTIL_VSERVER_VARS} ]; then
                eerror "Cannot find util-vserver installation"
                eerror "(the file '$UTIL_VSERVER_VARS' would be expected)"
                return 1
        fi
        
-       source ${UTIL_VSERVER_VARS}
-       source "$_LIB_FUNCTIONS"
-       source "$__PKGLIBDIR/vserver.functions"
+       . ${UTIL_VSERVER_VARS}
 
        ebegin "Stopping all running guests"
        $_START_VSERVERS -j 1 --all --stop
        eend $?
 
        ebegin "Killing all running contexts"
-       kill_contexts
+       $__PKGLIBDIR/bash-wrapper 'kill_contexts'
        eend $?
+
+       $__PKGLIBDIR/bash-wrapper 'hasCgroup'
+       if [ $? -eq 0 ]; then
+               ebegin "Unmounting cgroup-hierarchy"
+               $__PKGLIBDIR/bash-wrapper 'umount_cgroup'
+               eend $?
+       fi
 }
 
 # vim:ts=4:filetype=gentoo-init-d