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