# 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"`
-}
-
-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() {
: ${UTIL_VSERVER_VARS:=/usr/lib/util-vserver/util-vserver-vars}
if [ ! -e ${UTIL_VSERVER_VARS} ]; then
. ${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 'set_helper'
eend $?
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() {
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"'
- eend $?
- fi
}
# vim:ts=4:filetype=gentoo-init-d