X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sysv%2Fvservers.subst;h=523f4fa3df81c0ccad5593ab5b3ae28de37468e8;hb=02dcaee8776539a6526b4fb8d53e5e04cedb1da8;hp=7be797de6845564800c5b9a14299e2daceed88f6;hpb=6bf3f95de36c804c97716b2d0bdf10680c559044;p=util-vserver.git diff --git a/sysv/vservers.subst b/sysv/vservers.subst index 7be797d..523f4fa 100755 --- a/sysv/vservers.subst +++ b/sysv/vservers.subst @@ -1,82 +1,82 @@ #!/bin/sh -# chkconfig: 345 98 10 +# chkconfig: 345 99 01 # description: The vservers service is used to start and stop all # the virtual servers. USR_SBIN=/usr/sbin - +VROOTDIR=/vservers # Print the vserver name in priority/alpha order sortserver(){ - ( - cd /etc/vservers - for serv in *.conf - do - test -f "$serv" || continue - - PRIORITY=100 - . $serv - printf "%03d %s\n" $PRIORITY `basename $serv .conf` - done - ) | sort $* | (while read a b; do echo $b; done) + ( + cd /etc/vservers + for serv in *.conf ; do + test -f "$serv" || continue + PRIORITY=100 + . $serv + printf "%03d %s\n" $PRIORITY `basename $serv .conf` + done + ) | sort $* | (while read a b; do echo $b; done) } startservers(){ - echo "Starting the virtual servers" - cd /etc/vservers - for name in `sortserver` - do - ONBOOT= - . $name.conf - if [ "$ONBOOT" = "yes" ] ; then - $USR_SBIN/vserver $name start - else - echo virtual server $name not configured for on boot start - fi - done + echo "Starting the virtual servers" + cd /etc/vservers + for name in ${*:-`sortserver`} ; do + if ! test -f "$name.conf" ; then + echo No configuration for this vserver: /etc/vservers/$name.conf + continue + fi + ONBOOT= + BACKGROUND=no + if [ -f /etc/vservers.conf ] ; then + . /etc/vservers.conf + fi + . $name.conf + if [ "$ONBOOT" = "yes" ] ; then + mkdir -p $VROOTDIR/$name/var/log + if [ "$BACKGROUND" = "yes" ] ; then + nohup setsid $USR_SBIN/vserver $name start >$VROOTDIR/$name/var/log/boot.log 2>&1 &1 /dev/tty8 /dev/tty8 & - else - startservers - fi + shift + startservers $* touch /var/lock/subsys/vservers ;; stop) + shift echo "Stopping the virtual servers" cd /etc/vservers - for name in `sortserver -r` - do - $USR_SBIN/vserver $name stop + for name in ${*:-`sortserver -r`} ; do + $USR_SBIN/vserver $name stop done rm -f /var/lock/subsys/vservers ;; restart|force-reload) - $0 stop - $0 start + shift + $0 stop $* + $0 start $* ;; reload) echo Not implemented ;; status) cd /etc/vservers - for serv in *.conf - do - ONBOOT=no - name=`basename $serv .conf` - . $serv - echo -n ONBOOT=$ONBOOT " " - $USR_SBIN/vserver $name running + for serv in *.conf ; do + ONBOOT=no + name=`basename $serv .conf` + . $serv + echo -n ONBOOT=$ONBOOT " " + $USR_SBIN/vserver $name running done ;; *) @@ -85,7 +85,3 @@ case "$1" in esac exit 0 - - - -