From 144b27fb9c6e9b7f06b988f05d69d3e0ad790ef9 Mon Sep 17 00:00:00 2001 From: Daniel Hokka Zakrisson Date: Thu, 18 Feb 2010 13:58:39 +0000 Subject: [PATCH] Sync sysv and Gentoo initscripts. git-svn-id: http://svn.linux-vserver.org/svn/util-vserver/trunk@2874 94cd875c-1c1d-0410-91d2-eb244daf1a30 --- gentoo/util-vserver | 47 +++++++++++++++++++++++++++++++++++++++++++---- sysv/util-vserver | 4 ++-- 2 files changed, 45 insertions(+), 6 deletions(-) diff --git a/gentoo/util-vserver b/gentoo/util-vserver index 94903cc..1f46709 100644 --- a/gentoo/util-vserver +++ b/gentoo/util-vserver @@ -10,9 +10,10 @@ set_helper() { 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 @@ -20,11 +21,31 @@ 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 [ "$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"` +} + +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" } start() { @@ -37,6 +58,10 @@ start() { . ${UTIL_VSERVER_VARS} + ebegin "Creating directories for $PACKAGE_NAME" + create_dirs + eend $? + ebegin "Setting vshelper path to $_VSHELPER" set_helper eend $? @@ -44,6 +69,13 @@ start() { ebegin "Loading default device map" $__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() { @@ -63,6 +95,13 @@ 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 diff --git a/sysv/util-vserver b/sysv/util-vserver index 84128c3..0f5dd6c 100755 --- a/sysv/util-vserver +++ b/sysv/util-vserver @@ -43,7 +43,7 @@ function kill_contexts() { local xid for xid in `ls -1 /proc/virtual 2>/dev/null`; do - test "$xid" = "info" -o "$xid" = "status" && continue + [ "$xid" = "info" -o "$xid" = "status" ] && continue $_VATTRIBUTE --xid $xid --set --flag ~persistent $_VKILL --xid $xid -s 15 sleep 3 @@ -51,7 +51,7 @@ function kill_contexts() done local alive=0 for xid in `ls -1 /proc/virtual 2>/dev/null`; do - test "$xid" = "info" -o "$xid" = "status" && continue + [ "$xid" = "info" -o "$xid" = "status" ] && continue let alive+=1 done test $alive = 0 -- 1.8.1.5