S50radvd 1023 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #!/bin/sh
  2. DAEMON="radvd"
  3. PIDFILE="/var/run/$DAEMON.pid"
  4. RADVD_ARGS="-m syslog"
  5. # shellcheck source=/dev/null
  6. [ -r "/etc/default/$DAEMON" ] && . "/etc/default/$DAEMON"
  7. [ -f /etc/radvd.conf ] || exit 0
  8. [ -f /proc/sys/net/ipv6/conf/all/forwarding ] || {
  9. echo "Error: radvd requires IPv6 forwarding support."
  10. exit 1
  11. }
  12. start() {
  13. printf 'Starting %s: ' "$DAEMON"
  14. echo "1" > /proc/sys/net/ipv6/conf/all/forwarding
  15. # shellcheck disable=SC2086 # we need the word splitting
  16. start-stop-daemon -S -q -p "$PIDFILE" -x "/usr/sbin/$DAEMON" \
  17. -- $RADVD_ARGS
  18. status=$?
  19. if [ "$status" -eq 0 ]; then
  20. echo "OK"
  21. else
  22. echo "FAIL"
  23. fi
  24. return "$status"
  25. }
  26. stop() {
  27. printf 'Stopping %s: ' "$DAEMON"
  28. start-stop-daemon -K -q -p "$PIDFILE" -x "/usr/sbin/$DAEMON"
  29. status=$?
  30. if [ "$status" -eq 0 ]; then
  31. echo "OK"
  32. else
  33. echo "FAIL"
  34. fi
  35. return "$status"
  36. }
  37. restart() {
  38. stop
  39. sleep 1
  40. start
  41. }
  42. case "$1" in
  43. start|stop)
  44. "$1";;
  45. restart|reload)
  46. restart;;
  47. *)
  48. echo "Usage: $0 {start|stop|restart|reload}"
  49. exit 1
  50. esac