1*4882a593Smuzhiyun#!/bin/sh 2*4882a593Smuzhiyun#/etc/init.d/wd_keepalive: start wd_keepalive daemon. 3*4882a593Smuzhiyun 4*4882a593Smuzhiyun### BEGIN INIT INFO 5*4882a593Smuzhiyun# Provides: wd_keepalive 6*4882a593Smuzhiyun# Short-Description: Start watchdog keepalive daemon 7*4882a593Smuzhiyun# Required-Start: $remote_fs 8*4882a593Smuzhiyun# Required-Stop: $remote_fs 9*4882a593Smuzhiyun# X-Start-Before: $all 10*4882a593Smuzhiyun# Default-Start: 2 3 4 5 11*4882a593Smuzhiyun# Default-Stop 12*4882a593Smuzhiyun### END INIT INFO 13*4882a593Smuzhiyun 14*4882a593SmuzhiyunPATH=/bin:/usr/bin:/sbin:/usr/sbin 15*4882a593Smuzhiyun 16*4882a593Smuzhiyuntest -x /usr/sbin/wd_keepalive || exit 0 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun# For configuration of the init script use the file 19*4882a593Smuzhiyun# /etc/default/watchdog, do not edit this init script. 20*4882a593Smuzhiyun 21*4882a593Smuzhiyun# Set run_watchdog to 1 to start watchdog or 0 to disable it. 22*4882a593Smuzhiyunrun_watchdog=0 23*4882a593Smuzhiyun 24*4882a593Smuzhiyun# Specify additional watchdog options here (see manpage). 25*4882a593Smuzhiyunwatchdog_options="" 26*4882a593Smuzhiyun 27*4882a593Smuzhiyun# Specify module to load 28*4882a593Smuzhiyunwatchdog_module="none" 29*4882a593Smuzhiyun 30*4882a593Smuzhiyun[ -e /etc/default/watchdog ] && . /etc/default/watchdog 31*4882a593Smuzhiyun 32*4882a593SmuzhiyunNAME=wd_keepalive 33*4882a593SmuzhiyunDAEMON=/usr/sbin/wd_keepalive 34*4882a593Smuzhiyun 35*4882a593SmuzhiyunSTOP_RETRY_SCHEDULE='TERM/10/forever/KILL/1' 36*4882a593Smuzhiyun 37*4882a593Smuzhiyun# . /lib/lsb/init-functions 38*4882a593Smuzhiyun 39*4882a593Smuzhiyun# Mock Debian stuff 40*4882a593Smuzhiyunlog_begin_msg() { 41*4882a593Smuzhiyun echo -n $* 42*4882a593Smuzhiyun} 43*4882a593Smuzhiyun 44*4882a593Smuzhiyunlog_end_msg() { 45*4882a593Smuzhiyun if [ "$1" = "0" ]; then 46*4882a593Smuzhiyun echo 'done' 47*4882a593Smuzhiyun else 48*4882a593Smuzhiyun echo 'error' 49*4882a593Smuzhiyun fi 50*4882a593Smuzhiyun} 51*4882a593Smuzhiyun 52*4882a593Smuzhiyunlog_daemon_msg() { 53*4882a593Smuzhiyun echo $* 54*4882a593Smuzhiyun} 55*4882a593Smuzhiyun 56*4882a593Smuzhiyunlog_progress_msg() { 57*4882a593Smuzhiyun echo $* 58*4882a593Smuzhiyun} 59*4882a593Smuzhiyun 60*4882a593Smuzhiyun 61*4882a593Smuzhiyuncase "$1" in 62*4882a593Smuzhiyun start) 63*4882a593Smuzhiyun if [ $run_watchdog = 1 ] 64*4882a593Smuzhiyun then 65*4882a593Smuzhiyun [ ${watchdog_module:-none} != "none" ] && /sbin/modprobe $watchdog_module 66*4882a593Smuzhiyun echo -n "Starting watchdog keepalive daemon: " 67*4882a593Smuzhiyun if start-stop-daemon --start --quiet \ 68*4882a593Smuzhiyun --exec $DAEMON -- $watchdog_options 69*4882a593Smuzhiyun then 70*4882a593Smuzhiyun echo wd_keepalive. 71*4882a593Smuzhiyun else 72*4882a593Smuzhiyun echo 73*4882a593Smuzhiyun fi 74*4882a593Smuzhiyun fi 75*4882a593Smuzhiyun ;; 76*4882a593Smuzhiyun 77*4882a593Smuzhiyun stop) 78*4882a593Smuzhiyun if [ $run_watchdog = 1 ] 79*4882a593Smuzhiyun then 80*4882a593Smuzhiyun echo -n "Stopping watchdog keepalive daemon: " 81*4882a593Smuzhiyun if start-stop-daemon --stop --quiet --pidfile /var/run/$NAME.pid \ 82*4882a593Smuzhiyun $STOP_RETRY_SCHEDULE 83*4882a593Smuzhiyun then 84*4882a593Smuzhiyun echo wd_keepalive. 85*4882a593Smuzhiyun else 86*4882a593Smuzhiyun echo 87*4882a593Smuzhiyun fi 88*4882a593Smuzhiyun fi 89*4882a593Smuzhiyun ;; 90*4882a593Smuzhiyun 91*4882a593Smuzhiyun status) 92*4882a593Smuzhiyun status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $? 93*4882a593Smuzhiyun ;; 94*4882a593Smuzhiyun 95*4882a593Smuzhiyun restart) 96*4882a593Smuzhiyun $0 force-reload 97*4882a593Smuzhiyun ;; 98*4882a593Smuzhiyun 99*4882a593Smuzhiyun force-reload) 100*4882a593Smuzhiyun if [ $run_watchdog = 0 ]; then exit 0; fi 101*4882a593Smuzhiyun echo -n "Restarting $NAME daemon." 102*4882a593Smuzhiyun start-stop-daemon --stop --quiet --pidfile /var/run/$NAME.pid \ 103*4882a593Smuzhiyun $STOP_RETRY_SCHEDULE 104*4882a593Smuzhiyun echo -n "." 105*4882a593Smuzhiyun if start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid \ 106*4882a593Smuzhiyun --exec $DAEMON -- $watchdog_options 107*4882a593Smuzhiyun then 108*4882a593Smuzhiyun echo "done." 109*4882a593Smuzhiyun else 110*4882a593Smuzhiyun echo 111*4882a593Smuzhiyun fi 112*4882a593Smuzhiyun ;; 113*4882a593Smuzhiyun 114*4882a593Smuzhiyun *) 115*4882a593Smuzhiyun echo "Usage: /etc/init.d/wd_keepalive {start|stop|status|restart|force-reload}" 116*4882a593Smuzhiyun exit 1 117*4882a593Smuzhiyun 118*4882a593Smuzhiyunesac 119*4882a593Smuzhiyun 120*4882a593Smuzhiyunexit 0 121*4882a593Smuzhiyun 122