blob: f7af525e7511ce03fc7e2e8bd078c3b19f62d232 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
|
#!/sbin/runscript
##
## description: The vservers service is used to start and stop all
## the virtual servers.
## to configure see:
## - /etc/vservers/*.conf
## - /etc/vservers.conf
USR_SBIN=/usr/sbin
depend() {
need net rebootmgr
}
## we need to call this _before_ starting any vserver!
proc_security() {
## the following does not seem to work (maybe "old-style" only?):
### from: http://vserver.strahlungsfrei.de/tiki-index.php?page=VServerGentooNew
## enable (parts of) the proc filesystem
#vproc -e /proc/cmdline
#vproc -e /proc/loadavg
#vproc -e /proc/meminfo
### invalid ioctl for /proc/mounts!!
##vproc -e /proc/mounts
#vproc -e /proc/stat
#vproc -e /proc/uptime
## (vproc -e /proc/version)
## (useful and harmless: cpuinfo, slabinfo, interrupts)
#vproc -e /proc/cpuinfo
#vproc -e /proc/slabinfo
#vproc -e /proc/interrupts
## anyway, we use the following for now:
/usr/sbin/setattr -R --~hide /proc/*
}
# Print the vserver name in priority/alpha order
sortserver(){
(
cd /etc/vservers
for serv in *.conf
do
test -f "$serv" || continue
PRIORITY=100
. $serv
test "$ONBOOT" || continue
printf "%03d %s\n" $PRIORITY `basename $serv .conf`
done
) | sort $* | (while read a b; do echo $b; done)
}
startservers(){
echo "Starting the virtual servers"
cd /etc/vservers
for name in `sortserver`
do
ONBOOT=
. $name.conf
if [ "$ONBOOT" = "yes" ] ; then
echo; echo
echo "*** starting vserver \"$name\" ($(date)) ***"
$USR_SBIN/vserver $name start
else
echo "*** vserver \"$name\" not configured for on boot start ***"
fi
done
}
BACKGROUND=off
if [ -f /etc/vservers.conf ] ; then
. /etc/vservers.conf
fi
# See how we were called.
start() {
proc_security
if [ "$BACKGROUND" = "yes" ] ; then
einfo "asynchronous start of vserver on tty8"
echo "vserver startup on $(date)" 2>&1 </dev/tty8 | tee /var/log/vservers.boot >/dev/tty8
#startservers >/dev/tty8 </dev/tty8 2>/dev/tty8 &
startservers 2>&1 </dev/tty8 | tee /var/log/vservers.boot >/dev/tty8 &
else
estart "synchronous vserver-start"
startservers | tee /var/log/vservers.boot
eend $?
fi
}
stop() {
echo "Stopping the virtual servers"
cd /etc/vservers
for name in `sortserver -r`
do
$USR_SBIN/vserver $name stop
done
}
## TODO: finish our status()-function
my_status() {
cd /etc/vservers
for serv in *.conf
do
ONBOOT=no
name=`basename $serv .conf`
. $serv
echo -n ONBOOT=$ONBOOT " "
$USR_SBIN/vserver $name running
done
}
|