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}
+ ebegin "Creating directories for $PACKAGE_NAME"
+ create_dirs
+ eend $?
+
ebegin "Setting vshelper path to $_VSHELPER"
set_helper
eend $?
ebegin "Loading default device map"
- $__PKGLIBDIR/bash-wrapper '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() {
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