openwrt-routing/naywatch/files/naywatch.init

66 lines
1.3 KiB
Bash

#!/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
}