gluon-respondd: Use procd in initscript and to restart on network changes

This commit is contained in:
Jan-Philipp Litza 2016-12-08 23:13:56 +01:00
parent cb86fce29f
commit d8bb97831b
3 changed files with 14 additions and 52 deletions

View File

@ -1,16 +0,0 @@
#!/bin/sh
. /lib/functions/service.sh
ifname_to_dev () {
ifstatus client "$1"|jsonfilter -e "@.device"
}
case "$ACTION" in
ifup)
DEVICE="$(ifname_to_dev "$INTERFACE")"
[ "$DEVICE" != "$(cat /lib/gluon/respondd/client.dev 2>/dev/null)" ] ||
/etc/init.d/gluon-respondd restart_if_running &
;;
esac

View File

@ -1,48 +1,28 @@
#!/bin/sh /etc/rc.common #!/bin/sh /etc/rc.common
EXTRA_COMMANDS='restart_if_running' USE_PROCD=1
START=50 START=50
SERVICE_WRITE_PID=1
SERVICE_DAEMONIZE=1
DAEMON=/usr/bin/respondd DAEMON=/usr/bin/respondd
LOCK=/var/run/gluon-respondd.lock
start_service() {
do_start() {
DEVS="" DEVS=""
for dev in $( ubus call network.interface dump | jsonfilter -e "@.interface[@.proto='gluon_mesh' && @.up=true].device") $(cat /lib/gluon/respondd/client.dev 2>/dev/null) for dev in $( ubus call network.interface dump | jsonfilter -e "@.interface[@.proto='gluon_mesh' && @.up=true].device") $(cat /lib/gluon/respondd/client.dev 2>/dev/null)
do do
DEVS="$DEVS -i $dev" DEVS="$DEVS -i $dev"
done done
service_start $DAEMON -g ff02::2:1001 -p 1001 -d /lib/gluon/respondd $DEVS procd_open_instance
procd_set_param command $DAEMON -g ff02::2:1001 -p 1001 -d /lib/gluon/respondd $DEVS
procd_set_param respawn ${respawn_threshold:-3600} ${respawn_timeout:-5} ${respawn_retry:-5}
procd_set_param stderr 1
procd_close_instance
} }
do_stop() { service_triggers() {
service_stop $DAEMON local script=$(readlink "$initscript")
} local name=$(basename ${script:-$initscript})
start() { procd_open_trigger
lock $LOCK procd_add_raw_trigger "interface.*" 0 "/etc/init.d/$name" reload
do_start procd_close_trigger
lock -u $LOCK
}
stop() {
lock $LOCK
do_stop
lock -u $LOCK
}
restart_if_running() {
lock $LOCK
if service_check $DAEMON; then
do_stop
do_start
fi
lock -u $LOCK
} }

View File

@ -1,2 +0,0 @@
#!/bin/sh
/etc/init.d/gluon-respondd restart_if_running &