return 0
}
-kill_contexts() {
+kill_contexts()
+{
local xid
- for xid in `ls -1 /proc/virtual`; do
+ for xid in `ls -1 /proc/virtual 2>/dev/null`; do
[ "$xid" = "info" -o "$xid" = "status" ] && continue
$_VATTRIBUTE --xid $xid --set --flag ~persistent
$_VKILL --xid $xid -s 15
$_VKILL --xid $xid -s 9
done
local alive=0
- for xid in `ls -1 /proc/virtual`; do
+ for xid in `ls -1 /proc/virtual 2>/dev/null`; do
[ "$xid" = "info" -o "$xid" = "status" ] && continue
let alive+=1
done
- return $alive
+ test $alive = 0
+}
+
+create_dirs()
+{
+ $_MKDIR -p "$__RUNDIR" && $_MKDIR -p "$__VSHELPERSTATEDIR" && $_MKDIR -p `$_READLINK "$__PKGSTATEREVDIR"`
}
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"
+ create_dirs
+ eend $?
- ebegin "Setting path to vshelper"
+ ebegin "Setting vshelper path to $_VSHELPER"
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 '_generateCgroupOptions; test -n "$CGROUP_MNT" || exit 0; $_MKDIR -p "$CGROUP_MNT"; $_MOUNT -t cgroup -o "$CGROUP_SUBSYS" vserver "$CGROUP_MNT"'
+ 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
ebegin "Killing all running contexts"
kill_contexts
eend $?
+
+ $__PKGLIBDIR/bash-wrapper 'hasCgroup'
+ if [ $? -eq 0 ]; then
+ ebegin "Unmounting cgroup-hierarchy"
+ $__PKGLIBDIR/bash-wrapper '_generateCgroupOptions; test -n "$CGROUP_MNT" || exit 0; $_UMOUNT "$CGROUP_MNT"'
+ eend $?
+ fi
}
# vim:ts=4:filetype=gentoo-init-d