X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;ds=sidebyside;f=sliver-initscripts%2Fvinit;fp=sliver-initscripts%2Fvinit;h=003a8722d45b79a071421a3a5f5b3bd1cc5db4e8;hb=e57f1eed3dbd95226c1febfefb0e78536b23798b;hp=9e0c9b70ff86207bfd06cc17b3a89296c98ddb39;hpb=d82537340d8a6171abe804668ebddfd3c530f9be;p=nodemanager.git diff --git a/sliver-initscripts/vinit b/sliver-initscripts/vinit index 9e0c9b7..003a872 100644 --- a/sliver-initscripts/vinit +++ b/sliver-initscripts/vinit @@ -1,8 +1,5 @@ #!/bin/bash # -# $Id$ -# $URL$ -# # vinit - trigger the slice-local initscript as installed in /etc/rc.d/vinit.slice # # this is unconditionnally installed and activated in the sliver @@ -12,10 +9,8 @@ # as the slice has not yet started at that point # # historical note -# historically planetlab initscripts have not been required to handle the 'stop' method -# so installing such a script directly as /etc/rc.d/vinit would result in the -# script .. being run a second time at vserver-stop time - +# historically planetlab initscripts were not required to handle the 'stop' and 'restart' method +# as of March 2011 this becomes a requirement though # Source function library. . /etc/init.d/functions @@ -29,26 +24,30 @@ lockfile=/var/lock/subsys/vinit RETVAL=0 -# xxx todo - redirect all stdout, stderr to /var/log/vinit for user access - function start() { - if [ ! -x $slicescript ] ; then - echo "vinit@$slicename: no executable $slicescript - ignored" - return 0 - fi + [ -x $slicescript ] || return 0 echo $"Starting $prog" - $slicescript start $slicename >& /var/log/vinit & + $slicescript start $slicename &>> /var/log/vinit & touch ${lockfile} return 0 } -# the initial model came without a stop function; legacy ... function stop() { + [ -x $slicescript ] && $slicescript stop $slicename &>> /var/log/vinit & + # safe side + sleep 5 echo $"Stopping $prog " killproc $basename rm -f ${lockfile} } +function restart () { + [ -x $slicescript ] || return 0 + echo $"Restarting $prog" + $slicescript restart $slicename &>> /var/log/vinit & + return 0 +} + function status () { if [ -f ${lockfile} ] ; then echo "$prog seems to have run" @@ -68,12 +67,16 @@ case "$1" in stop RETVAL=$? ;; + restart) + restart + RETVAL=$? + ;; status) status RETVAL=$? ;; *) - echo $"Usage: $0 {start|stop|status}" + echo $"Usage: $0 {start|stop|restart|status}" exit 1 ;; esac