|
@@ -1,48 +1,28 @@
|
|
|
#!/bin/sh /etc/rc.common
|
|
|
|
|
|
-EXTRA_COMMANDS='restart_if_running'
|
|
|
-
|
|
|
+USE_PROCD=1
|
|
|
START=50
|
|
|
|
|
|
-SERVICE_WRITE_PID=1
|
|
|
-SERVICE_DAEMONIZE=1
|
|
|
-
|
|
|
DAEMON=/usr/bin/respondd
|
|
|
-LOCK=/var/run/gluon-respondd.lock
|
|
|
-
|
|
|
|
|
|
-do_start() {
|
|
|
+start_service() {
|
|
|
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)
|
|
|
do
|
|
|
DEVS="$DEVS -i $dev"
|
|
|
done
|
|
|
- service_start $DAEMON -g ff02::2:1001 -p 1001 -d /lib/gluon/respondd $DEVS
|
|
|
-}
|
|
|
-
|
|
|
-do_stop() {
|
|
|
- service_stop $DAEMON
|
|
|
+ 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
|
|
|
}
|
|
|
|
|
|
-start() {
|
|
|
- lock $LOCK
|
|
|
- do_start
|
|
|
- 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
|
|
|
+service_triggers() {
|
|
|
+ local script=$(readlink "$initscript")
|
|
|
+ local name=$(basename ${script:-$initscript})
|
|
|
|
|
|
- lock -u $LOCK
|
|
|
+ procd_open_trigger
|
|
|
+ procd_add_raw_trigger "interface.*" 0 "/etc/init.d/$name" reload
|
|
|
+ procd_close_trigger
|
|
|
}
|