procd interface triggers may be busy. Unbound hard restarts will flush the cache. This might happen frequently depending on how interface triggers occur. Change the procd trigger to reduce occurences. Load this trigger prior to netifd (START=20), but only truly start Unbound from the trigger rather than immediately in init. Clean up log entries in scripts after Unbound, NTP, and DNSSEC are established. Signed-off-by: Eric Luehrsen <ericluehrsen@hotmail.com>
64 lines
1.6 KiB
Bash
Executable file
64 lines
1.6 KiB
Bash
Executable file
#!/bin/sh /etc/rc.common
|
|
##############################################################################
|
|
#
|
|
# Copyright (C) 2016 Michael Hanselmann, Eric Luehrsen
|
|
#
|
|
##############################################################################
|
|
#
|
|
# This init script is just the entry point for Unbound UCI.
|
|
#
|
|
##############################################################################
|
|
|
|
START=19
|
|
STOP=50
|
|
USE_PROCD=1
|
|
PROG=/usr/sbin/unbound
|
|
|
|
##############################################################################
|
|
|
|
. /usr/lib/unbound/unbound.sh
|
|
|
|
##############################################################################
|
|
|
|
boot() {
|
|
UNBOUND_BOOT=1
|
|
start "$@"
|
|
}
|
|
|
|
##############################################################################
|
|
|
|
start_service() {
|
|
if [ -n "$UNBOUND_BOOT" ] ; then
|
|
# Load procd triggers (rc) and use event IFUP to really start
|
|
return 0
|
|
fi
|
|
|
|
# complex UCI work
|
|
unbound_start
|
|
|
|
# standard procd clause
|
|
procd_open_instance
|
|
procd_set_param command $PROG -d -c $UNBOUND_CONFFILE
|
|
procd_set_param respawn
|
|
procd_close_instance
|
|
}
|
|
|
|
##############################################################################
|
|
|
|
stop_service() {
|
|
unbound_stop
|
|
|
|
# Wait! on restart Unbound may take time writing closure stats to syslog
|
|
pidof $PROG && sleep 1
|
|
}
|
|
|
|
##############################################################################
|
|
|
|
service_triggers() {
|
|
# use soft reload to prevent continuous stop-start and cache flush
|
|
procd_add_reload_trigger "unbound"
|
|
procd_add_raw_trigger "interface.*.up" 2000 /etc/init.d/unbound reload
|
|
}
|
|
|
|
##############################################################################
|
|
|