Don't bother trying to gracefully shutdown vservers
[util-vserver.git] / sysv / vservers.subst
1 #!/bin/sh
2 # chkconfig: 345 99 01
3 # description: The vservers service is used to start and stop all
4 #              the virtual servers.
5
6 USR_SBIN=/usr/sbin
7 CHCONTEXT="$USR_SBIN/chcontext --silent --secure --ctx"
8 VROOTDIR=/vservers
9
10 # Print the vserver name in priority/alpha order
11 sortserver(){
12     (
13     cd /etc/vservers
14     for serv in *.conf ; do
15         # XXX - why is this check necessary?
16         test -f "$serv" || continue
17         PRIORITY=100
18         . $serv
19         echo $PRIORITY `basename $serv .conf`
20     done
21     ) | sort -n $* | cut -d ' ' -f 2
22 }
23
24 # See how we were called.
25 case "$1" in
26   start)
27         # do nothing - functionality subsumed by Node Manager
28         touch /var/lock/subsys/vservers
29         ;;
30   stop)
31         shift
32         echo "Stopping the virtual servers"
33         cd /etc/vservers
34         for name in ${*:-`sortserver -r`} ; do
35             chcontext --ctx `id -u $name` /usr/lib/util-vserver/vserverkillall
36             umount $VROOTDIR/$name/proc
37             umount $VROOTDIR/$name/dev/pts
38         done
39         rm -f /var/lock/subsys/vservers
40         ;;
41   restart|force-reload)
42         shift
43         $0 stop $*
44         $0 start $*
45         ;;
46   reload)
47         echo Not implemented
48         ;;
49   status)
50         cd /etc/vservers
51         for serv in *.conf ; do
52             ONBOOT=no
53             name=`basename $serv .conf`
54             . $serv
55             echo -n ONBOOT=$ONBOOT " "
56             $USR_SBIN/vserver $name running
57         done
58         ;;
59   *)
60         echo "Usage: vservers {start|stop|restart|reload|status}"
61         exit 1
62 esac