X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=sysv%2Futil-vserver;h=f6081e7e26b34e1bf43a5cb5421d87ec22bb80e2;hb=155d02e9c9240cb03c5f9fa5242b590ce622c054;hp=4374143024742a1674094ed2dd8c3e605f5cd11c;hpb=443949610f23ce8e4c9764728f21d7bef968d14f;p=util-vserver.git diff --git a/sysv/util-vserver b/sysv/util-vserver index 4374143..f6081e7 100755 --- a/sysv/util-vserver +++ b/sysv/util-vserver @@ -52,6 +52,21 @@ function create_dirs() $_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 umount_cgroup() +{ + _generateCgroupOptions + test -n "$CGROUP_MNT" || return 0 + $_UMOUNT "$CGROUP_MNT" +} + function start() { _beginResult $"Creating required directories" @@ -64,6 +79,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 } @@ -78,6 +98,11 @@ function stop() kill_contexts _endResult $? local retval=$? + if hasCgroup; then + _beginResult $"Unmounting cgroup-hierarchy" + umount_cgroup + _endResult $? + fi $_RM -f "$lockfile" return $retval }