--- /dev/null
+#!/bin/sh
+#
+# chkconfig: 345 98 02
+# description: pl_mom (daemon of death) startup script
+#
+
+CODE='/usr/local/planetlab/bin/pl_mom.pl'
+PROC='pl_mom'
+
+. /etc/rc.d/init.d/functions
+
+RETVAL=0
+
+pidfile=/var/run/$PROC.pid
+
+check_status() {
+ pid=`cat $pidfile 2>/dev/null`
+ #
+ # this eliminates a race condition between checking existence of pidfile
+ # and reading its value
+ #
+ [ -n "$pid" -a -d /proc/$pid ]
+}
+
+case "$1" in
+ start)
+ echo -n "starting $PROC:"
+ [ -r $CODE ] || action "code missing" /bin/false || exit 1
+ pid=`cat $pidfile 2>/dev/null`
+ if [ -n "$pid" ]; then
+ # check whether process really exists
+ # yes - don't try to start
+ [ -d /proc/$pid ] && action "already running" /bin/true && exit 1
+
+ # no - PID file is stale
+ rm -f $pidfile
+ fi
+
+ $CODE
+ sleep 1
+
+ cmd=success
+ check_status || cmd=failure
+ $cmd "$PROC startup"
+ echo
+ ;;
+
+ stop)
+ echo -n "shutting down $PROC: "
+ check_status && kill -TERM -`cat $pidfile` && sleep 1
+ cmd=failure
+ check_status || cmd=success && rm -f $pidfile
+ $cmd "$PROC shutdown"
+ RETVAL=0
+ echo
+ ;;
+
+ restart|reload)
+ $0 stop
+ $0 start
+ RETVAL=$?
+ ;;
+
+ status)
+ check_status && echo 'running' && exit 0 || \
+ echo 'not running' && exit 1
+ ;;
+
+ *)
+ echo "Usage: $0 {start|stop|restart|status}"
+ exit 1
+esac
+
+exit $RETVAL