+#!/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
+# but of course nothing is run if the script is not present
+#
+# note - for practical reasons this is *not* activated through chkconfig
+# 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
+
+
+# Source function library.
+. /etc/init.d/functions
+
+slicescript=/etc/rc.d/init.d/vinit.slice
+basename=$(basename $slicescript)
+slicename=$(cat /etc/slicename)
+
+prog="Slice initscript ${basename}@${slicename}"
+lockfile=/var/lock/subsys/vinit
+
+RETVAL=0
+
+function start() {
+ if [ ! -x $slicescript ] ; then
+ echo "vinit@$slicename: no executable $slicescript - ignored"
+ return 0
+ fi
+ echo $"Starting $prog"
+ $slicescript start $slicename >& /var/log/vinit &
+ touch ${lockfile}
+ return 0
+}
+
+# the initial model came without a stop function; legacy ...
+function stop() {
+ echo $"(Dummy) Stopping $prog "
+ rm -f ${lockfile}
+}
+
+function status () {
+ if [ -f ${lockfile} ] ; then
+ echo "$prog seems to have run"
+ return 0
+ else
+ echo "$prog apparently hasn't run"
+ return 1
+ fi
+}
+
+case "$1" in
+ start)
+ start
+ RETVAL=$?
+ ;;
+ stop)
+ stop
+ RETVAL=$?
+ ;;
+ status)
+ status
+ RETVAL=$?
+ ;;
+ *)
+ echo $"Usage: $0 {start|stop|status}"
+ exit 1
+ ;;
+esac
+
+exit $RETVAL