951309cd933a4f04f239f71e70418eb19a84a2f7
[util-vserver.git] / util-vserver / 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                 test "$ONBOOT" || continue
20                 printf "%03d %s\n" $PRIORITY `basename $serv .conf`
21         done
22         ) | sort $* | (while read a b; do echo $b; done)
23 }
24
25 startservers(){
26         echo "Starting the virtual servers"
27         cd /etc/vservers
28         for name in `sortserver`
29         do
30                 ONBOOT=
31                 . $name.conf
32                 if [ "$ONBOOT" = "yes" ] ; then
33                         $USR_SBIN/vserver $name start
34                 else
35                         echo virtual server $name not configured for on boot start
36                 fi
37         done
38 }
39
40 BACKGROUND=off
41 if [ -f /etc/vservers.conf ] ; then
42         . /etc/vservers.conf
43 fi
44
45
46 # See how we were called.
47 case "$1" in
48   start)
49         if [ "$BACKGROUND" = "yes" ] ; then
50                 startservers >/dev/tty8 </dev/tty8 2>/dev/tty8 &
51         else
52                 startservers
53         fi
54         touch /var/lock/subsys/vservers
55         ;;
56   stop)
57         echo "Stopping the virtual servers"
58         cd /etc/vservers
59         for name in `sortserver -r`
60         do
61                 $USR_SBIN/vserver $name stop
62         done
63         rm -f /var/lock/subsys/vservers
64         ;;
65   restart)
66         $0 stop
67         $0 start
68         ;;
69   reload)
70         echo Not implemented
71         ;;
72   status)
73         cd /etc/vservers
74         for serv in *.conf
75         do
76                 ONBOOT=no
77                 name=`basename $serv .conf`
78                 . $serv
79                 echo -n ONBOOT=$ONBOOT " "
80                 $USR_SBIN/vserver $name running
81         done
82         ;;
83   *)
84         echo "Usage: vservers {start|stop|restart|reload|status}"
85         exit 1
86 esac
87
88 exit 0
89
90
91
92