From: Daniel Hokka Zakrisson Date: Fri, 28 Oct 2011 21:36:21 +0000 (+0200) Subject: Move init functions to common file, fixing gentoo X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?p=util-vserver.git;a=commitdiff_plain;h=a69bad017fcc766676f529fa1a78d3596087273c Move init functions to common file, fixing gentoo --- diff --git a/gentoo/bash-wrapper b/gentoo/bash-wrapper index 80481be..56dda76 100755 --- a/gentoo/bash-wrapper +++ b/gentoo/bash-wrapper @@ -22,6 +22,7 @@ test -e "$UTIL_VSERVER_VARS" || { exit 1 } . "$UTIL_VSERVER_VARS" +. "$_LIB_VSERVER_INIT_FUNCTIONS" . "$_LIB_FUNCTIONS" . "$__PKGLIBDIR/vserver.functions" diff --git a/gentoo/util-vserver b/gentoo/util-vserver index 80548d9..38a502d 100644 --- a/gentoo/util-vserver +++ b/gentoo/util-vserver @@ -2,37 +2,6 @@ # 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 2>/dev/null`; 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 2>/dev/null`; do - [ "$xid" = "info" -o "$xid" = "status" ] && continue - let alive+=1 - done - test $alive = 0 -} - -create_dirs() -{ - $_MKDIR -p "$__RUNDIR" && $_MKDIR -p "$__VSHELPERSTATEDIR" && $_MKDIR -p `$_READLINK "$__PKGSTATEREVDIR"` -} - start() { : ${UTIL_VSERVER_VARS:=/usr/lib/util-vserver/util-vserver-vars} if [ ! -e ${UTIL_VSERVER_VARS} ]; then @@ -44,11 +13,11 @@ start() { . ${UTIL_VSERVER_VARS} ebegin "Creating directories for $PACKAGE_NAME" - create_dirs + $__PKGLIBDIR/bash-wrapper 'create_dirs' eend $? ebegin "Setting vshelper path to $_VSHELPER" - set_helper + $__PKGLIBDIR/bash-wrapper 'create_dirs' eend $? ebegin "Loading default device map" @@ -58,7 +27,7 @@ start() { $__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"' + $__PKGLIBDIR/bash-wrapper 'mount_cgroup' eend $? fi } @@ -78,13 +47,13 @@ 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 '_generateCgroupOptions; test -n "$CGROUP_MNT" || exit 0; $_UMOUNT "$CGROUP_MNT"' + $__PKGLIBDIR/bash-wrapper 'umount_cgroup' eend $? fi } diff --git a/scripts/vserver-init.functions b/scripts/vserver-init.functions index 69dd368..32c65d9 100755 --- a/scripts/vserver-init.functions +++ b/scripts/vserver-init.functions @@ -48,3 +48,69 @@ function _endResult() _postResult return $rc } + +function set_helper() +{ + local f="/proc/sys/kernel/vshelper" + if test -e "$f"; then + echo "$_VSHELPER" > "$f" + return 0 + else + return 2 + fi +} + +function kill_contexts() +{ + local xid + 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 + sleep 3 + $_VKILL --xid $xid -s 9 + done + local alive=0 + for xid in `ls -1 /proc/virtual 2>/dev/null`; do + [ "$xid" = "info" -o "$xid" = "status" ] && continue + let alive+=1 + done + test $alive = 0 +} + +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" + if test -n "$CGROUP_MNT_PER_SS"; then + for ss in "${CGROUP_SUBSYS[@]}"; do + $_MKDIR -p "$CGROUP_MNT/$ss" + $_MOUNT -t cgroup -o "$ss" vserver "$CGROUP_MNT/$ss" + done + else + oIFS="$IFS" + IFS=, + ss="${CGROUP_SUBSYS[*]}" + IFS="$oIFS" + $_MOUNT -t cgroup -o "$ss" vserver "$CGROUP_MNT" + fi +} + +function umount_cgroup() +{ + _generateCgroupOptions + test -n "$CGROUP_MNT" || return 0 + if test -n "$CGROUP_MNT_PER_SS"; then + for ss in "${CGROUP_SUBSYS[@]}"; do + $_UMOUNT "$CGROUP_MNT/$ss" + done + else + $_UMOUNT "$CGROUP_MNT" + fi +} diff --git a/sysv/util-vserver b/sysv/util-vserver index 8cc173f..d791aa5 100755 --- a/sysv/util-vserver +++ b/sysv/util-vserver @@ -27,73 +27,6 @@ LOCKFILE=util-vserver . "$_LIB_FUNCTIONS" . "$__PKGLIBDIR/vserver.functions" - -function set_helper() -{ - local f="/proc/sys/kernel/vshelper" - if test -e "$f"; then - echo "$_VSHELPER" > "$f" - return 0 - else - return 2 - fi -} - -function kill_contexts() -{ - local xid - 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 - sleep 3 - $_VKILL --xid $xid -s 9 - done - local alive=0 - for xid in `ls -1 /proc/virtual 2>/dev/null`; do - [ "$xid" = "info" -o "$xid" = "status" ] && continue - let alive+=1 - done - test $alive = 0 -} - -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" - if test -n "$CGROUP_MNT_PER_SS"; then - for ss in "${CGROUP_SUBSYS[@]}"; do - $_MKDIR -p "$CGROUP_MNT/$ss" - $_MOUNT -t cgroup -o "$ss" vserver "$CGROUP_MNT/$ss" - done - else - oIFS="$IFS" - IFS=, - ss="${CGROUP_SUBSYS[*]}" - IFS="$oIFS" - $_MOUNT -t cgroup -o "$ss" vserver "$CGROUP_MNT" - fi -} - -function umount_cgroup() -{ - _generateCgroupOptions - test -n "$CGROUP_MNT" || return 0 - if test -n "$CGROUP_MNT_PER_SS"; then - for ss in "${CGROUP_SUBSYS[@]}"; do - $_UMOUNT "$CGROUP_MNT/$ss" - done - else - $_UMOUNT "$CGROUP_MNT" - fi -} - function start() { _beginResult $"Creating required directories"