Tagging module pf2slice - pf2slice-1.0-2
[pf2slice.git] / pf2slice-initscript
1 #!/bin/sh
2 #
3 # chkconfig: 2345 56 25
4 # description: planetflow slice initscript
5 #
6
7 #. /etc/rc.d/init.d/functions
8
9 DELTA=10 # Time to sleep between polls
10 VSYSSCRIPT="/vsys/pfmount.in"
11 VSYSCMD="pf"
12
13 watchdog(){
14     while [ 1 ]; do
15         # if the file exists, try writing to it.
16         if [ -a ${VSYSSCRIPT} ]; then
17                 echo "Writing to Fifo"
18                 /bin/echo ${VSYSCMD} > ${VSYSSCRIPT} &
19                 PID=$!
20                 #  Wait for command to complete
21                 sleep $DELTA
22                 # check to see if PID is running
23                 if kill -0 ${PID} >/dev/null 2>&1 ; then
24                     # if PID is running, it's likely hung.  Kill it.
25                     echo "Blocked on Fifo. Killing"
26                     kill ${PID} 
27                 else
28                     # assume if PID is no longer, command completed
29                     echo "Completed. Exitting"
30                     exit 0
31                 fi
32         else
33             # no pipe yet.  vsys probably hasn't started yet.  wait.
34             echo "${VSYSSCRIPT} doesn't exist"
35             sleep $DELTA
36         fi 
37     done
38 }
39
40
41 case "$1" in
42     start)
43         echo -n "starting the planetflow slice:"
44             watchdog 2> /dev/null
45         ;;
46
47     *)
48         echo "Usage: $0 {start|stop|restart|status}"
49         RETVAL=1
50 esac
51
52
53
54 exit $RETVAL