Advertisement
Guest User

Untitled

a guest
Dec 22nd, 2015
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.94 KB | None | 0 0
  1. #!/bin/sh
  2. ### BEGIN INIT INFO
  3. # Provides: pfclient
  4. # Required-Start: $local_fs $remote_fs $network $time $syslog
  5. # Required-Stop: $local_fs $remote_fs $network $time $syslog
  6. # Default-Start: 2 3 4 5
  7. # Default-Stop: 0 1 6
  8. # Short-Description: planefinder.net ads-b decoder
  9. # Description: pfclient decodes ADS-B data and shares to planefinder.net
  10. ### END INIT INFO
  11.  
  12. . /lib/lsb/init-functions
  13.  
  14. DAEMON=/usr/bin/pfclient
  15.  
  16. PIDFILE=/var/run/pfclient.pid
  17. LOGFILE=/var/log/pfclient
  18. CONFIGFILE=/etc/pfclient-config.json
  19.  
  20. get_pid()
  21. {
  22. cat "$PIDFILE"
  23. }
  24.  
  25. is_running()
  26. {
  27. [ -f "$PIDFILE" ] && ps `get_pid` > /dev/null 2>&1
  28. }
  29.  
  30. start()
  31. {
  32. log_daemon_msg "Starting pfclient" "pfclient"
  33. log_daemon_msg ""
  34.  
  35. start-stop-daemon --start --exec $DAEMON -- -d -i $PIDFILE -z $CONFIGFILE -y $LOGFILE $ 2>/var/log/pfclient/error.log
  36.  
  37. status=$?
  38. log_end_msg $status
  39. }
  40.  
  41. stop() {
  42. log_daemon_msg "Stopping pfclient" "pfclient"
  43. log_daemon_msg ""
  44.  
  45. PFPID=`cat ${PIDFILE} 2>/dev/null`
  46.  
  47. if [ "${PFPID}" != "" ] && [ -e "/proc/${PFPID}" ]; then
  48. kill $PFPID #2>/dev/null
  49. ATTEMPT=0
  50. while [ -e "/proc/${PFPID}" ] && [ "${ATTEMPT}" -le 80 ]; do
  51. sleep 0.25
  52. ATTEMPT=$((ATTEMPT+1))
  53. done
  54.  
  55. if [ -e "/proc/${PFPID}" ]; then
  56. echo "Killing all children processes"
  57. pkill -9 -P ${PFPID}
  58. kill -9 ${PFPID}
  59. fi
  60. fi
  61.  
  62. log_end_msg $?
  63. return
  64. }
  65.  
  66. status()
  67. {
  68. if is_running; then
  69. echo "Running"
  70. else
  71. echo "Stopped"
  72. exit 1
  73. fi
  74.  
  75. return;
  76. }
  77.  
  78. case "$1" in
  79. start)
  80. start
  81. ;;
  82. stop)
  83. stop
  84. ;;
  85. status)
  86. status
  87. ;;
  88. restart)
  89. stop && sleep 2 && start
  90. ;;
  91. reload)
  92. exit 3
  93. ;;
  94. status)
  95. status_of_proc $DAEMON "pfclient"
  96. ;;
  97. *)
  98. echo "Usage: $0 {start|stop|restart|status}"
  99. exit 2
  100. ;;
  101. esac
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement