3 # Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
5 # This program is free software; you can redistribute it and/or modify
6 # it under the terms of the GNU General Public License as published by
7 # the Free Software Foundation; version 2 of the License.
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
14 # You should have received a copy of the GNU General Public License
15 # along with this program; if not, write to the Free Software
16 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 if test -e /etc/init.d/functions; then
19 . /etc/init.d/functions
20 _beginResult() { echo -n "$@..."; }
21 _postResult() { echo; }
22 lockfile=/var/lock/subsys/$LOCKFILE
23 elif test -e /etc/gentoo-release; then
24 . /etc/init.d/functions.sh
25 _beginResult() { ebegin "$@"; }
30 lockfile=/var/lock/vservers/$LOCKFILE
32 _beginResult() { echo -n "$@..."; }
36 failure() { echo ERROR; }
37 lockfile=/var/run/$LOCKFILE
54 local f="/proc/sys/kernel/vshelper"
56 echo "$_VSHELPER" > "$f"
63 function kill_contexts()
66 for xid in `ls -1 /proc/virtual 2>/dev/null`; do
67 [ "$xid" = "info" -o "$xid" = "status" ] && continue
68 $_VATTRIBUTE --xid $xid --set --flag ~persistent
69 $_VKILL --xid $xid -s 15
71 $_VKILL --xid $xid -s 9
74 for xid in `ls -1 /proc/virtual 2>/dev/null`; do
75 [ "$xid" = "info" -o "$xid" = "status" ] && continue
81 function create_dirs()
83 $_MKDIR -p "$__RUNDIR" && $_MKDIR -p "$__VSHELPERSTATEDIR" && $_MKDIR -p `$_READLINK "$__PKGSTATEREVDIR"`
86 function mount_cgroup()
88 _generateCgroupOptions
89 test -n "$CGROUP_MNT" || return 0
90 $_MKDIR -p "$CGROUP_MNT"
91 if test -n "$CGROUP_MNT_PER_SS"; then
92 for ss in "${CGROUP_SUBSYS[@]}"; do
93 $_MKDIR -p "$CGROUP_MNT/$ss"
94 $_GREP -q "$CGROUP_MNT/$ss" /proc/mounts || \
95 $_MOUNT -t cgroup -o "$ss" vserver "$CGROUP_MNT/$ss"
100 ss="${CGROUP_SUBSYS[*]}"
102 $_MOUNT -t cgroup -o "$ss" vserver "$CGROUP_MNT"
106 function umount_cgroup()
108 _generateCgroupOptions
109 test -n "$CGROUP_MNT" || return 0
110 if test -n "$CGROUP_MNT_PER_SS"; then
111 for ss in "${CGROUP_SUBSYS[@]}"; do
112 $_UMOUNT "$CGROUP_MNT/$ss"
115 $_UMOUNT "$CGROUP_MNT"