diff options
Diffstat (limited to 'net/unbound/files/unbound.init')
-rwxr-xr-x | net/unbound/files/unbound.init | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/net/unbound/files/unbound.init b/net/unbound/files/unbound.init index f12e6831c..ff827c4f0 100755 --- a/net/unbound/files/unbound.init +++ b/net/unbound/files/unbound.init @@ -54,22 +54,31 @@ stop_service() { ############################################################################## service_triggers() { - local trigger local legacy=$( uci_get unbound.@unbound[0].trigger ) local triggers=$( uci_get unbound.@unbound[0].trigger_interface ) + local trigger="$triggers $legacy" - triggers="$triggers $legacy" - PROCD_RELOAD_DELAY=2000 - procd_add_reload_trigger "unbound" + . /usr/lib/unbound/defaults.sh + + + if [ ! -f "$UB_TOTAL_CONF" -o -n "$UB_BOOT" ] ; then + # Unbound is can be a bit heavy, so wait some on first start but any + # interface coming up affects the trigger and delay so guarantee start + procd_add_raw_trigger "interface.*.up" 5000 /etc/init.d/unbound restart + + elif [ -n "$triggers" ] ; then + PROCD_RELOAD_DELAY=2000 + procd_add_reload_trigger "unbound" "dhcp" - if [ -n "$triggers" ] ; then for trigger in $triggers ; do - # due to some netifd/procd interactions with IP6, limit interfaces + # User selected triggers to restart at any other time procd_add_reload_interface_trigger "$trigger" done + else - procd_add_raw_trigger "interface.*.up" 2000 /etc/init.d/unbound reload + PROCD_RELOAD_DELAY=2000 + procd_add_reload_trigger "unbound" "dhcp" fi } |