gluon-respondd 726 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #!/bin/sh /etc/rc.common
  2. EXTRA_COMMANDS='restart_if_running'
  3. START=50
  4. SERVICE_WRITE_PID=1
  5. SERVICE_DAEMONIZE=1
  6. DAEMON=/usr/bin/respondd
  7. LOCK=/var/run/gluon-respondd.lock
  8. do_start() {
  9. DEVS=""
  10. 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)
  11. do
  12. DEVS="$DEVS -i $dev"
  13. done
  14. service_start $DAEMON -g ff02::2:1001 -p 1001 -d /lib/gluon/respondd $DEVS
  15. }
  16. do_stop() {
  17. service_stop $DAEMON
  18. }
  19. start() {
  20. lock $LOCK
  21. do_start
  22. lock -u $LOCK
  23. }
  24. stop() {
  25. lock $LOCK
  26. do_stop
  27. lock -u $LOCK
  28. }
  29. restart_if_running() {
  30. lock $LOCK
  31. if service_check $DAEMON; then
  32. do_stop
  33. do_start
  34. fi
  35. lock -u $LOCK
  36. }