]> git.pld-linux.org Git - packages/util-vserver.git/blob - vservers.init
2c6fbea4047e30e9b3c0134d808027893faa4a37
[packages/util-vserver.git] / vservers.init
1 #!/bin/sh
2 #
3 # vservers:     starts and stops vservers
4 #
5 # chkconfig:    345 98 02
6 # description:  Wrapper to start and stop vservers
7 #               This script does not care for vservers not started by it
8 #
9 # Copyright 1999-2004 Gentoo Foundation
10 # Modified for PLD by Jan Rêkorajski <baggins@pld-linux.org>
11 # Distributed under the terms of the GNU General Public License v2
12
13
14 [ -n "$UTIL_VSERVER_VARS" ] || UTIL_VSERVER_VARS=/usr/lib/util-vserver/util-vserver-vars
15 if [ ! -e "$UTIL_VSERVER_VARS" ] ; then
16         echo "Can not find util-vserver installation (the file '$UTIL_VSERVER_VARS' would be expected); aborting..." >&2
17         exit 1
18 fi
19 . "$UTIL_VSERVER_VARS"
20
21 [ -f /etc/sysconfig/vservers ] && . /etc/sysconfig/vservers
22
23 [ -n "$MARKS" ] || MARKS="default"
24 [ -n "$NUMPARALLEL" ] || NUMPARALLEL=1
25 [ -n "$LOCKDIR" ] || LOCKDIR="/var/lock/vservers"
26
27 _tellResult()
28 {
29         local rc=$1
30         deltext
31         case "$rc" in
32           0) ok;;
33           2) ok; rc=0;;
34           *) fail;;
35         esac
36         return $rc
37 }
38
39 case "$1" in
40 start)
41         if [ ! -f /var/lock/subsys/vprocunhide ]; then
42                 echo "Run \"/etc/rc.d/init.d/vprocunhide start\" first"
43                 exit 1
44         fi
45
46         if [ is_yes "$STARTALL" ]; then
47                 if [ ! -f /var/lock/subsys/vservers-all ]; then
48                         show "Starting all types of vservers"
49                         busy
50                         $_START_VSERVERS -j $NUMPARALLEL --all --start
51                         _tellResult $?
52                         rc=$?
53                         [ $rc -eq 0 ] && touch /var/lock/subsys/vservers-all
54                 else
55                         echo "All types of vservers are already startred"
56                 fi
57         else
58                 for MARK in $MARKS; do
59                         if [ -f /var/lock/subsys/vservers-$MARK ]; then
60                                 echo "Vservers of type '$MARK' are already startred"
61                                 continue
62                         fi
63                         show "Starting vservers of type '$MARK'"
64                         busy
65                         $_START_VSERVERS -m $MARK -j $NUMPARALLEL --all --start
66                         _tellResult $?
67                         rc=$?
68                         [ $rc -eq 0 ] && touch /var/lock/subsys/vservers-$MARK
69                 done
70         fi
71         
72         for VSERVER in $START_VSERVERS; do
73                 if [ -f /var/lock/subsys/vserver-$VSERVER ]; then
74                         echo "Vserver '$VSERVER' is already startred"
75                         continue
76                 fi
77                 show "Starting single vserver '$VSERVER'"
78                 busy
79                 $_VSERVER $VSERVER start
80                 _tellResult $?
81                 rc=$?
82                 [ $rc -eq 0 ] && touch /var/lock/subsys/vserver-$VSERVER
83         done
84         ;;
85 stop)
86         for VSERVER in $START_VSERVERS; do
87                 if [ ! -f /var/lock/subsys/vserver-$VSERVER ]; then
88                         echo "Vserver '$VSERVER' is not running"
89                         continue
90                 fi
91                 show "Stopping single vserver '$VSERVER'"
92                 busy
93                 $_VSERVER $VSERVER stop
94                 _tellResult $?
95                 rc=$?
96                 rm -f /var/lock/subsys/vserver-$VSERVER
97         done
98
99         if [ is_yes "$STARTALL" ]; then
100                 if [ -f /var/lock/subsys/vservers-all ]; then
101                         show "Stopping all types of vservers"
102                         busy
103                         $_START_VSERVERS -j $NUMPARALLEL --all --stop
104                         _tellResult $?
105                         rc=$?
106                         rm -f /var/lock/subsys/vservers-all
107                 else
108                         echo "All types of vservers are not running"
109                 fi
110         else
111                 for MARK in $MARKS; do
112                         if [ ! -f /var/lock/subsys/vservers-$MARK ]; then
113                                 echo "Vservers of type '$MARK' are not running"
114                                 continue
115                         fi
116                         show "Stopping vservers of type '$MARK'"
117                         busy
118                         $_START_VSERVERS -m $MARK -j $NUMPARALLEL --all --stop
119                         _tellResult $?
120                         rc=$?
121                         rm -f /var/lock/subsys/vservers-$MARK
122                 done
123         fi
124         ;;
125 status)
126         echo "The following types of vservers are running:"
127         
128         for i in /var/lock/subsys/vservers-*; do
129                 [ -f "$i" ] || continue
130                 echo $i | awk '{gsub("/var/lock/subsys/vservers-",""); printf(" %s\n",$0); }'
131                 local running="true"
132         done
133         
134         if [[ "${running}" != "true" ]]; then
135                 echo "  none"
136         fi
137         
138         echo
139         echo "/proc/virtual/ says these are running:"
140         
141         for i in /proc/virtual/*; do
142                 [ -d $i ] || continue
143                 NAME=$( basename $( vuname -g --xid $( basename ${i} ) CONTEX ) )
144                 echo "  ${NAME}"
145         done
146         
147         echo
148         echo "vserver-stat says these are running:"
149         /usr/sbin/vserver-stat
150         ;;
151 *)
152         echo "Usage: $0 {start|stop|restart|status}"
153         exit 1
154         ;;
155 esac
156
157 exit $RETVAL
158
159 # This must be last line !
160 # vi:syntax=sh
This page took 0.039489 seconds and 3 git commands to generate.