#!/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
# 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
RETVAL=0
+# bash's &>> feature is broken in f8
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 2>&1 &
touch ${lockfile}
return 0
}
-# the initial model came without a stop function; legacy ...
function stop() {
+ [ -x $slicescript ] && $slicescript stop $slicename >> /var/log/vinit 2>&1 &
+ # 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 2>&1 &
+ return 0
+}
+
function status () {
if [ -f ${lockfile} ] ; then
echo "$prog seems to have run"
stop
RETVAL=$?
;;
+ restart)
+ restart
+ RETVAL=$?
+ ;;
status)
status
RETVAL=$?
;;
*)
- echo $"Usage: $0 {start|stop|status}"
+ echo $"Usage: $0 {start|stop|restart|status}"
exit 1
;;
esac