diff --git a/general/overlay/etc/init.d/S99watchdog b/general/overlay/etc/init.d/S99watchdog new file mode 100755 index 00000000..bc0b1cbb --- /dev/null +++ b/general/overlay/etc/init.d/S99watchdog @@ -0,0 +1,54 @@ +#!/bin/sh + +DAEMON="watchdog" + +WATCHDOG_VENDOR=$(ipcinfo -v) +WATCHDOG_ENABLED=false +WATCHDOG_TIMEOUT=60 +WATCHDOG_ARGS="-T $WATCHDOG_TIMEOUT /dev/watchdog" +SUPPORTED_VENDORS="ingenic" + +vendor_supported() { + for vendor in $SUPPORTED_VENDORS; do + [ "$WATCHDOG_VENDOR" = "$vendor" ] && return 0 + done + return 1 +} + +start() +{ + if vendor_supported && [ "$(cli -g .watchdog.enabled)" = "false" ] && [ "$WATCHDOG_ENABLED" = "true" ]; then + printf "Starting ${DAEMON}: " + start-stop-daemon -S -q -x "/sbin/${DAEMON}" -- ${WATCHDOG_ARGS} + [ $? = 0 ] && echo "OK" || echo "FAIL" + else + echo "Watchdog: Unsupported vendor or Majestic Watchdog is enabled/standalone watchdog disabled" + exit 0 + fi +} + +stop() +{ + printf "Stopping ${DAEMON}: " + if start-stop-daemon -K -q -s KILL -n "${DAEMON}"; then + echo "OK" + else + echo "FAIL" + fi +} + +case "$1" in + start|stop) + "$1" + ;; + + restart|reload) + stop + start + ;; + + *) + echo "Usage: $0 {start|stop|restart|reload}" >&2 + exit 1 + ;; +esac