xref: /OK3568_Linux_fs/yocto/poky/meta/recipes-extended/watchdog/watchdog/wd_keepalive.init (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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