--- /dev/null
+#!/bin/sh /etc/rc.common
+
+USE_PROCD=1
+START=95
+STOP=01
+
+log() {
+ local msg="$1"
+ logger -t naywatch "$msg"
+}
+
+wait_for_network()
+{
+ ubus -t 15 wait_for network.interface.$1 2>/dev/null
+}
+
+boot()
+{
+ local _interfaces
+ config_load naywatch
+ config_get _interfaces general interface
+
+ for interface in $_interfaces; do
+ wait_for_network interface
+ done
+
+ rc_procd start_service
+}
+
+start_service() {
+ procd_open_instance
+
+ config_load naywatch
+ local _check_interval
+ local _watchdog_timeout
+ local _use_watchdog
+ local _save_logs
+ local _interfaces
+
+ config_get _check_interval general "check_interval"
+ config_get _watchdog_timeout general "watchdog_timeout"
+ config_get _use_watchdog general "use_watchdog"
+ config_get _save_logs general "save_logs"
+ config_get _interfaces general "interface"
+
+ procd_set_param command /usr/bin/naywatch "$_check_interval" "$_watchdog_timeout" "$_use_watchdog" "$_save_logs" "$_interfaces"
+
+ procd_set_param respawn 3600 15 0
+
+ procd_set_param stdout 1
+ procd_set_param stderr 1
+
+ procd_close_instance
+}
+
+stop_service() {
+ exec 3>&- # close file again
+ sync && wait
+}
+
+service_stopped() {
+ log "Naywatch Stopped!"
+ log "Handover Watchdog to procd again:"
+ ubus call system watchdog '{"magicclose":true,"stop":false}' > /dev/null
+}