diff --git a/contrib/busybox-init/S42yggdrasil b/contrib/busybox-init/S42yggdrasil new file mode 100755 index 0000000..d09c3a7 --- /dev/null +++ b/contrib/busybox-init/S42yggdrasil @@ -0,0 +1,71 @@ +#!/bin/sh + +CONFFILE="/etc/yggdrasil.conf" + +genconf() { + /usr/bin/yggdrasil -genconf > "$1" + return $? +} + +probetun() { + modprobe tun + return $? +} + +start() { + if [ ! -f "$CONFFILE" ]; then + printf 'Generating configuration file: ' + if genconf "$CONFFILE"; then + echo "OK" + else + echo "FAIL" + return 1 + fi + fi + + if [ ! -e /dev/net/tun ]; then + printf 'Inserting TUN module: ' + if probetun; then + echo "OK" + else + echo "FAIL" + return 1 + fi + fi + + printf 'Starting yggdrasil: ' + if start-stop-daemon -S -b -x /usr/bin/yggdrasil \ + -- --useconf < "$CONFFILE"; then + echo "OK" + else + echo "FAIL" + fi +} + +stop() { + printf "Stopping yggdrasil: " + if start-stop-daemon -K -q -x /usr/bin/yggdrasil; then + echo "OK" + else + echo "FAIL" + fi +} + +restart() { + stop + start +} + +reload() { + restart +} + +case "$1" in + start|stop|restart|reload) + "$1";; + *) + echo "Usage: $0 {start|stop|restart}" + exit 1 +esac + +exit 0