util-vserver-0.30
[util-vserver.git] / sysv / vservers.subst
1 #!/bin/sh
2 # chkconfig: 345 98 10
3 # description: The vservers service is used to start and stop all
4 #              the virtual servers.
5
6 USR_SBIN=/usr/sbin
7
8
9 # Print the vserver name in priority/alpha order
10 sortserver(){
11         (
12         cd /etc/vservers
13         for serv in *.conf
14         do
15                 test -f "$serv" || continue
16
17                 PRIORITY=100
18                 . $serv
19                 printf "%03d %s\n" $PRIORITY `basename $serv .conf`
20         done
21         ) | sort $* | (while read a b; do echo $b; done)
22 }
23
24 startservers(){
25         echo "Starting the virtual servers"
26         cd /etc/vservers
27         for name in `sortserver`
28         do
29                 ONBOOT=
30                 . $name.conf
31                 if [ "$ONBOOT" = "yes" ] ; then
32                         $USR_SBIN/vserver $name start
33                 else
34                         echo virtual server $name not configured for on boot start
35                 fi
36         done
37 }
38
39 BACKGROUND=off
40 if [ -f /etc/vservers.conf ] ; then
41         . /etc/vservers.conf
42 fi
43
44
45 # See how we were called.
46 case "$1" in
47   start)
48         if [ "$BACKGROUND" = "yes" ] ; then
49                 startservers >/dev/tty8 </dev/tty8 2>/dev/tty8 &
50         else
51                 startservers
52         fi
53         touch /var/lock/subsys/vservers
54         ;;
55   stop)
56         echo "Stopping the virtual servers"
57         cd /etc/vservers
58         for name in `sortserver -r`
59         do
60                 $USR_SBIN/vserver $name stop
61         done
62         rm -f /var/lock/subsys/vservers
63         ;;
64   restart|force-reload)
65         $0 stop
66         $0 start
67         ;;
68   reload)
69         echo Not implemented
70         ;;
71   status)
72         cd /etc/vservers
73         for serv in *.conf
74         do
75                 ONBOOT=no
76                 name=`basename $serv .conf`
77                 . $serv
78                 echo -n ONBOOT=$ONBOOT " "
79                 $USR_SBIN/vserver $name running
80         done
81         ;;
82   *)
83         echo "Usage: vservers {start|stop|restart|reload|status}"
84         exit 1
85 esac
86
87 exit 0
88
89
90
91