X-Git-Url: http://git.openwrt.org/?a=blobdiff_plain;f=naywatch%2Ffiles%2Fnaywatch.init;fp=naywatch%2Ffiles%2Fnaywatch.init;h=ac39a99933ba203814c805f2affb9ab589ef5fcf;hb=1088e65440b1f2f67b40e6a3073571da14f6a4b3;hp=0000000000000000000000000000000000000000;hpb=87be9afac67d177015d09b4232930b224899d474;p=feed%2Frouting.git diff --git a/naywatch/files/naywatch.init b/naywatch/files/naywatch.init new file mode 100644 index 0000000..ac39a99 --- /dev/null +++ b/naywatch/files/naywatch.init @@ -0,0 +1,65 @@ +#!/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 +}