Advertisement
medigeek

Fix wview service to use .pid instead of .sid

Aug 18th, 2012
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 5.15 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. # add to the shared library search path
  4. export LD_LIBRARY_PATH=/lib:/usr/local/lib:/usr/lib
  5. CONF_DIRECTORY=/etc/wview
  6. RUN_DIRECTORY=/var/lib/wview
  7. WVIEW_INSTALL_DIR=/usr/bin
  8. ### BEGIN INIT INFO
  9. # Provides:          wview
  10. # Required-Start:    $local_fs $network $time $syslog
  11. # Required-Stop:     $local_fs $network $time $syslog
  12. # Default-Start:     2 3 4 5
  13. # Default-Stop:      0 1 6
  14. # Short-Description: Start wview daemons at boot time
  15. # Description:       Start wview daemons at boot time.
  16. ### END INIT INFO
  17. # config:            $prefix/etc/wview
  18. # pidfiles:          $prefix/var/wview/*.pid
  19. ################################################################################
  20.  
  21. if [ -f $CONF_DIRECTORY/wview-user ]; then
  22.   WVIEW_USER=`cat $CONF_DIRECTORY/wview-user`
  23. fi
  24. : ${WVIEW_USER:=root}
  25.  
  26. WVIEWD_FILE=`cat $CONF_DIRECTORY/wview-binary`
  27. WVIEWD_BIN=$WVIEW_INSTALL_DIR/$WVIEWD_FILE
  28. test -x $WVIEWD_BIN || exit 5
  29.  
  30. HTMLD_BIN=$WVIEW_INSTALL_DIR/htmlgend
  31. test -x $HTMLD_BIN || exit 6
  32.  
  33. FTPD_BIN=$WVIEW_INSTALL_DIR/wviewftpd
  34. test -x $FTPD_BIN || exit 7
  35.  
  36. SSHD_BIN=$WVIEW_INSTALL_DIR/wviewsshd
  37. test -x $SSHD_BIN || exit 7
  38.  
  39. ALARMD_BIN=$WVIEW_INSTALL_DIR/wvalarmd
  40. test -x $ALARMD_BIN || exit 8
  41.  
  42. CWOPD_BIN=$WVIEW_INSTALL_DIR/wvcwopd
  43. test -x $CWOPD_BIN || exit 9
  44.  
  45. HTTP_BIN=$WVIEW_INSTALL_DIR/wvhttpd
  46.  
  47. RADROUTER_BIN=$WVIEW_INSTALL_DIR/radmrouted
  48.  
  49. PMOND_BIN=$WVIEW_INSTALL_DIR/wvpmond
  50. test -x $PMOND_BIN || exit 10
  51.  
  52. RADROUTER_PID=$RUN_DIRECTORY/radmrouted.pid
  53. WVIEWD_PID=$RUN_DIRECTORY/wviewd.pid
  54. HTMLD_PID=$RUN_DIRECTORY/htmlgend.pid
  55. FTPD_PID=$RUN_DIRECTORY/wviewftpd.pid
  56. SSHD_PID=$RUN_DIRECTORY/wviewsshd.pid
  57. ALARMD_PID=$RUN_DIRECTORY/wvalarmd.pid
  58. CWOPD_PID=$RUN_DIRECTORY/wvcwopd.pid
  59. HTTP_PID=$RUN_DIRECTORY/wvhttpd.pid
  60. PMOND_PID=$RUN_DIRECTORY/wvpmond.pid
  61.  
  62. wait_for_time_set() {
  63.     THOUSAND=1000
  64.     CURRVAL=`date +%s`
  65.     while [ "$CURRVAL" -lt "$THOUSAND" ]; do
  66.         sleep 1
  67.         CURRVAL=`date +%s`
  68.     done
  69. }
  70.  
  71. case "$1" in
  72.   start)
  73.     wait_for_time_set
  74.  
  75.     echo "Starting wview daemons:"
  76.    DAEMONLIST="RADROUTER WVIEWD HTMLD ALARMD CWOPD HTTP FTPD SSHD PMOND"
  77.    for each in $DAEMONLIST
  78.    do
  79.       BIN=$(eval echo \$$(echo $each)_BIN)
  80.       PID=$(eval echo \$$(echo $each)_PID)
  81.       if [ -x $BIN ]; then
  82.          #echo $BIN exists
  83.          if [ -f $PID ]; then
  84.             #PIDfile exists; check to see if that PID is valid
  85.             if [ ! -x /proc/$(cat $PID)/exe ]; then #if the pid is not current
  86.                echo "$BIN is not running but pid file exists, cleaning up"
  87.                rm $PID
  88.             fi
  89.          fi
  90.          if [ $each = "RADROUTER" ]; then
  91.             start-stop-daemon --start --oknodo --pidfile $PID \
  92.                --chuid $WVIEW_USER --exec $BIN 1 $RUN_DIRECTORY
  93.          else
  94.              start-stop-daemon --start --oknodo --pidfile $PID \
  95.               --exec $BIN --chuid $WVIEW_USER
  96.          fi
  97.          sleep 1
  98.       else
  99.           echo "Cannot find $BIN - exiting!"
  100.           exit 10
  101.       fi
  102.    done
  103.  
  104.     ;;
  105.   start-trace)
  106.     echo "Starting wview daemons (tracing to $RUN_DIRECTORY):"
  107.     echo "Warning: traced processes run very slowly and may effect performance."
  108.  
  109.     if [ -x $RADROUTER_BIN ]; then
  110.         start-stop-daemon --start --oknodo --pidfile $RADROUTER_PID \
  111.             --chuid $WVIEW_USER --exec $RADROUTER_BIN 1 $RUN_DIRECTORY
  112.  
  113.     else
  114.         echo "Cannot find $RADROUTER_BIN - exiting!"
  115.         exit 10
  116.     fi
  117.     sleep 1
  118.     strace -o $RUN_DIRECTORY/$WVIEWD_FILE.trace $WVIEWD_BIN -f &> /dev/null &
  119.     sleep 1
  120.     strace -o $RUN_DIRECTORY/htmlgend.trace $HTMLD_BIN -f &> /dev/null &
  121.     strace -o $RUN_DIRECTORY/wvalarmd.trace $ALARMD_BIN -f &> /dev/null &
  122.     strace -o $RUN_DIRECTORY/wvcwopd.trace $CWOPD_BIN -f &> /dev/null &
  123.     strace -o $RUN_DIRECTORY/wvhttpd.trace $HTTP_BIN -f &> /dev/null &
  124.     strace -o $RUN_DIRECTORY/wviewftpd.trace $FTPD_BIN -f &> /dev/null &
  125.     strace -o $RUN_DIRECTORY/wviewsshd.trace $SSHD_BIN -f &> /dev/null &
  126.     strace -o $RUN_DIRECTORY/wvpmond.trace $PMOND_BIN -f &> /dev/null &
  127.     ;;
  128.   stop)
  129.     start-stop-daemon --stop --oknodo --pidfile $PMOND_PID \
  130.         --exec $PMOND_BIN --signal 15 --retry 5
  131.     start-stop-daemon --stop --oknodo --pidfile $HTTP_PID \
  132.         --exec $HTTP_BIN --signal 15 --retry 5
  133.     start-stop-daemon --stop --oknodo --pidfile $CWOPD_PID \
  134.         --exec $CWOPD_BIN --signal 15 --retry 5
  135.     start-stop-daemon --stop --oknodo --pidfile $ALARMD_PID \
  136.         --exec $ALARMD_BIN --signal 15 --retry 5
  137.     start-stop-daemon --stop --oknodo --pidfile $SSHD_PID \
  138.         --exec $SSHD_BIN --signal 15 --retry 5
  139.     start-stop-daemon --stop --oknodo --pidfile $FTPD_PID \
  140.         --exec $FTPD_BIN --signal 15 --retry 5
  141.     start-stop-daemon --stop --oknodo --pidfile $HTMLD_PID \
  142.         --exec $HTMLD_BIN --signal 15 --retry 5
  143.     start-stop-daemon --stop --oknodo --pidfile $WVIEWD_PID \
  144.         --exec $WVIEWD_BIN --signal 15 --retry 5
  145.     start-stop-daemon --stop --oknodo --pidfile $RADROUTER_PID \
  146.         --exec $RADROUTER_BIN --signal 15 --retry 5
  147.     ;;
  148.   restart)
  149.     $0 stop  && sleep 2
  150.     $0 start
  151.     ;;
  152.   force-reload)
  153.     $0 stop  && sleep 2
  154.     $0 start
  155.     ;;
  156.   status)
  157.     ps aux | grep "wv"
  158.     ps aux | grep "htmlgend"
  159.     ;;
  160.   *)
  161.     echo "Usage: $0 {start|start-trace|stop|restart|force-reload|status}"
  162.     exit 1
  163. esac
  164.  
  165. exit 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement