#!/bin/sh # chkconfig: 345 99 01 # description: The vservers service is used to start and stop all # the virtual servers. USR_SBIN=/usr/sbin CHCONTEXT="$USR_SBIN/chcontext --silent --secure --ctx" VROOTDIR=/vservers # Print the vserver name in priority/alpha order sortserver(){ ( cd /etc/vservers for serv in *.conf ; do # XXX - why is this check necessary? test -f "$serv" || continue PRIORITY=100 . $serv echo $PRIORITY `basename $serv .conf` done ) | sort -n $* | cut -d ' ' -f 2 } # See how we were called. case "$1" in start) # do nothing - functionality subsumed by Node Manager touch /var/lock/subsys/vservers ;; stop) shift echo "Stopping the virtual servers" cd /etc/vservers for name in ${*:-`sortserver -r`} ; do chcontext --ctx `id -u $name` /usr/lib/util-vserver/vserverkillall umount $VROOTDIR/$name/proc umount $VROOTDIR/$name/dev/pts done rm -f /var/lock/subsys/vservers ;; restart|force-reload) 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 done ;; *) echo "Usage: vservers {start|stop|restart|reload|status}" exit 1 esac