#!/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() { local trigger local triggers=$( uci_get unbound.@unbound[0].trigger ) PROCD_RELOAD_DELAY=2000 procd_add_reload_trigger "unbound" if [ -n "$triggers" ] ; then for trigger in $triggers ; do # due to some netifd/procd interactions with IP6, limit interfaces procd_add_reload_interface_trigger "$trigger" done else procd_add_raw_trigger "interface.*.up" 2000 /etc/init.d/unbound reload fi } ##############################################################################