ping? On Fri, Aug 26, 2016 at 4:55 PM, Fabio Berton wrote: > This is a simplified version of the watchdog daemon. It only opens > /dev/watchdog, and keeps writing to it often enough to keep the kernel > from resetting, at least once per minute. Each write delays the reboot > time another minute. After a minute of inactivity the watchdog hardware > will cause a reset. In the case of the software watchdog the ability to > reboot will depend on the state of the machines and interrupts. > > Installs wd_keepalive binary and enable initscript. > > Signed-off-by: Fabio Berton > Signed-off-by: Otavio Salvador > --- > .../watchdog/watchdog/wd_keepalive.init | 121 > +++++++++++++++++++++ > meta/recipes-extended/watchdog/watchdog_5.15.bb | 23 +++- > 2 files changed, 141 insertions(+), 3 deletions(-) > create mode 100644 meta/recipes-extended/watchdog/watchdog/wd_ > keepalive.init > > diff --git a/meta/recipes-extended/watchdog/watchdog/wd_keepalive.init > b/meta/recipes-extended/watchdog/watchdog/wd_keepalive.init > new file mode 100644 > index 0000000..1d3e4c5 > --- /dev/null > +++ b/meta/recipes-extended/watchdog/watchdog/wd_keepalive.init > @@ -0,0 +1,121 @@ > +#!/bin/sh > +#/etc/init.d/wd_keepalive: start wd_keepalive daemon. > + > +### BEGIN INIT INFO > +# Provides: wd_keepalive > +# Short-Description: Start watchdog keepalive daemon > +# Required-Start: $remote_fs > +# Required-Stop: $remote_fs > +# X-Start-Before: $all > +# Default-Start: 2 3 4 5 > +# Default-Stop > +### END INIT INFO > + > +PATH=/bin:/usr/bin:/sbin:/usr/sbin > + > +test -x /usr/sbin/wd_keepalive || exit 0 > + > +# For configuration of the init script use the file > +# /etc/default/watchdog, do not edit this init script. > + > +# Set run_watchdog to 1 to start watchdog or 0 to disable it. > +run_watchdog=0 > + > +# Specify additional watchdog options here (see manpage). > +watchdog_options="" > + > +# Specify module to load > +watchdog_module="none" > + > +[ -e /etc/default/watchdog ] && . /etc/default/watchdog > + > +NAME=wd_keepalive > +DAEMON=/usr/sbin/wd_keepalive > + > +STOP_RETRY_SCHEDULE='TERM/10/forever/KILL/1' > + > +# . /lib/lsb/init-functions > + > +# Mock Debian stuff > +log_begin_msg() { > + echo -n $* > +} > + > +log_end_msg() { > + if [ "$1" = "0" ]; then > + echo 'done' > + else > + echo 'error' > + fi > +} > + > +log_daemon_msg() { > + echo $* > +} > + > +log_progress_msg() { > + echo $* > +} > + > + > +case "$1" in > + start) > + if [ $run_watchdog = 1 ] > + then > + [ ${watchdog_module:-none} != "none" ] && /sbin/modprobe > $watchdog_module > + echo -n "Starting watchdog keepalive daemon: " > + if start-stop-daemon --start --quiet \ > + --exec $DAEMON -- $watchdog_options > + then > + echo wd_keepalive. > + else > + echo > + fi > + fi > + ;; > + > + stop) > + if [ $run_watchdog = 1 ] > + then > + echo -n "Stopping watchdog keepalive daemon: " > + if start-stop-daemon --stop --quiet --pidfile /var/run/$NAME.pid \ > + $STOP_RETRY_SCHEDULE > + then > + echo wd_keepalive. > + else > + echo > + fi > + fi > + ;; > + > + status) > + status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $? > + ;; > + > + restart) > + $0 force-reload > + ;; > + > + force-reload) > + if [ $run_watchdog = 0 ]; then exit 0; fi > + echo -n "Restarting $NAME daemon." > + start-stop-daemon --stop --quiet --pidfile /var/run/$NAME.pid \ > + $STOP_RETRY_SCHEDULE > + echo -n "." > + if start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid \ > + --exec $DAEMON -- $watchdog_options > + then > + echo "done." > + else > + echo > + fi > + ;; > + > + *) > + echo "Usage: /etc/init.d/wd_keepalive {start|stop|status|restart| > force-reload}" > + exit 1 > + > +esac > + > +exit 0 > + > diff --git a/meta/recipes-extended/watchdog/watchdog_5.15.bb > b/meta/recipes-extended/watchdog/watchdog_5.15.bb > index ee1a893..1c0049c 100644 > --- a/meta/recipes-extended/watchdog/watchdog_5.15.bb > +++ b/meta/recipes-extended/watchdog/watchdog_5.15.bb > @@ -12,6 +12,7 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/watchdog/watchdog-${PV}.tar.gz > \ > file://0001-Include-linux-param.h-for-EXEC_PAGESIZE-definition.patch > \ > file://watchdog-init.patch \ > file://watchdog-conf.patch \ > + file://wd_keepalive.init \ > " > > SRC_URI[md5sum] = "678c32f6f35a0492c9c1b76b4aa88828" > @@ -28,11 +29,27 @@ CFLAGS_append_libc-musl = " -I${STAGING_INCDIR}/tirpc " > LDFLAGS_append_libc-musl = " -ltirpc " > EXTRA_OECONF_append_libc-musl = " --disable-nfs " > > -INITSCRIPT_NAME = "watchdog.sh" > -INITSCRIPT_PARAMS = "start 15 1 2 3 4 5 . stop 85 0 6 ." > +INITSCRIPT_PACKAGES = "${PN} ${PN}-keepalive" > > -RRECOMMENDS_${PN} = "kernel-module-softdog" > +INITSCRIPT_NAME_${PN} = "watchdog.sh" > +INITSCRIPT_PARAMS_${PN} = "start 15 1 2 3 4 5 . stop 85 0 6 ." > + > +INITSCRIPT_NAME_${PN}-keepalive = "wd_keepalive" > +INITSCRIPT_PARAMS_${PN}-keepalive = "start 15 1 2 3 4 5 . stop 85 0 6 ." > > do_install_append() { > install -D ${S}/redhat/watchdog.init ${D}/${sysconfdir}/init.d/ > watchdog.sh > + install -Dm 0755 ${WORKDIR}/wd_keepalive.init > ${D}${sysconfdir}/init.d/wd_keepalive > } > + > +PACKAGES =+ "${PN}-keepalive" > + > +FILES_${PN}-keepalive = " \ > + ${sysconfdir}/init.d/wd_keepalive \ > + ${sbindir}/wd_keepalive \ > +" > + > +RDEPENDS_${PN} += "${PN}-keepalive" > + > +RRECOMMENDS_${PN} = "kernel-module-softdog" > + > -- > 2.1.4 > >