X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=sysv%2Futil-vserver;h=4f7f035a7cdc0cbcdd4cc26d3d2b6b3c765d585d;hb=e5d96f93d0de60ca5fe2f30c09aef449e39e3e89;hp=957e12d485de49d93789e2a26b582de34a3b2c06;hpb=93b6ce372f2e185af3cbb19d9c7620486f433496;p=util-vserver.git diff --git a/sysv/util-vserver b/sysv/util-vserver index 957e12d..4f7f035 100755 --- a/sysv/util-vserver +++ b/sysv/util-vserver @@ -32,7 +32,7 @@ function set_helper() function kill_contexts() { local xid - for xid in `ls -1 /proc/virtual`; do + 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 @@ -40,7 +40,7 @@ function kill_contexts() $_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 test "$xid" = "info" -o "$xid" = "status" && continue let alive+=1 done @@ -49,7 +49,15 @@ function kill_contexts() function create_dirs() { - $_MKDIR -p "$__RUNDIR" && $_MKDIR -p "$__VSHELPERSTATEDIR" && $_MKDIR -p `getPhysicalDir "$__PKGSTATEREVDIR"` + $_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() @@ -64,6 +72,11 @@ function start() _beginResult $"Loading default device map" 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 }