X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=gentoo%2Futil-vserver;h=ce9d1adf27f810e106dabda5b8b87546ca062ca4;hb=e56e7eebefd18c80abf0e533f3cbdd9c1c22e700;hp=18273262ad85a4d905be7d8a35d5f29e7775c254;hpb=e9ae5b850b403b218c811089d1f848b6e84417da;p=util-vserver.git diff --git a/gentoo/util-vserver b/gentoo/util-vserver index 1827326..ce9d1ad 100644 --- a/gentoo/util-vserver +++ b/gentoo/util-vserver @@ -2,71 +2,60 @@ # Copyright 1999-2007 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -set_helper() { - local f="/proc/sys/kernel/vshelper" - if [ -e "$f" ]; then - echo "$_VSHELPER" > "$f" - fi - return 0 -} - -kill_contexts() { - local xid - for xid in `ls -1 /proc/virtual`; do - [ "$xid" = "info" -o "$xid" = "status" ] && continue - $_VATTRIBUTE --xid $xid --set --flag ~persistent - $_VKILL --xid $xid -s 15 - sleep 3 - $_VKILL --xid $xid -s 9 - done - local alive=0 - for xid in `ls -1 /proc/virtual`; do - [ "$xid" = "info" -o "$xid" = "status" ] && continue - let alive+=1 - done - return $alive -} - 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" + $__PKGLIBDIR/bash-wrapper 'create_dirs' + eend $? ebegin "Setting vshelper path to $_VSHELPER" - set_helper + $__PKGLIBDIR/bash-wrapper '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 'mount_cgroup' + 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 eend $? ebegin "Killing all running contexts" - kill_contexts + $__PKGLIBDIR/bash-wrapper 'kill_contexts' eend $? + + $__PKGLIBDIR/bash-wrapper 'hasCgroup' + if [ $? -eq 0 ]; then + ebegin "Unmounting cgroup-hierarchy" + $__PKGLIBDIR/bash-wrapper 'umount_cgroup' + eend $? + fi } # vim:ts=4:filetype=gentoo-init-d