[Buildroot] [git commit] package/smcroute: add sysv init script

Arnout Vandecappelle (Essensium/Mind) arnout at mind.be
Sat Sep 11 14:27:19 UTC 2021


commit: https://git.buildroot.net/buildroot/commit/?id=7b7be053b8b6f763b54a662020e84edc3b202d2b
branch: https://git.buildroot.net/buildroot/commit/?id=refs/heads/master

Same start order as mrouted, start after networking is up.

Custom command line options, like startup delay, or disable multicast
routing by default, can be added to the optional /etc/default/smcroute
env. file.

Signed-off-by: Joachim Wiberg <troglobit at gmail.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout at mind.be>
---
 package/smcroute/S41smcroute | 48 ++++++++++++++++++++++++++++++++++++++++++++
 package/smcroute/smcroute.mk |  5 +++++
 2 files changed, 53 insertions(+)

diff --git a/package/smcroute/S41smcroute b/package/smcroute/S41smcroute
new file mode 100755
index 0000000000..bdc0f87645
--- /dev/null
+++ b/package/smcroute/S41smcroute
@@ -0,0 +1,48 @@
+#!/bin/sh
+
+NAME="smcroute"
+DAEMON="smcrouted"
+PIDFILE="/var/run/$NAME.pid"
+
+# shellcheck source=/dev/null
+[ -r "/etc/default/$NAME" ] && . "/etc/default/$NAME"
+
+cmd()
+{
+    start-stop-daemon -q -p "$PIDFILE" "$@"
+    status=$?
+    if [ $status -eq 0 ]; then
+	echo "OK"
+    else
+	echo "FAIL"
+    fi
+    return $status
+}
+
+case "$1" in
+    start)
+	printf 'Starting %s: ' "$DAEMON"
+	# shellcheck disable=SC2086 # we need the word splitting
+	cmd -S -x "/usr/sbin/$DAEMON" -- $SMCROUTED_ARGS
+	;;
+
+    stop)
+	printf 'Stopping %s: ' "$DAEMON"
+	cmd -K
+	;;
+
+    restart)
+	$0 stop
+	sleep 1
+	$0 start
+	;;
+
+    reload)
+	printf 'Reloading %s: ' "$DAEMON"
+	cmd -K -s HUP
+	;;
+
+    *)
+	echo "Usage: $0 {start|stop|restart|reload}"
+	exit 1
+esac
diff --git a/package/smcroute/smcroute.mk b/package/smcroute/smcroute.mk
index e4ee81db6f..9cce0acbbc 100644
--- a/package/smcroute/smcroute.mk
+++ b/package/smcroute/smcroute.mk
@@ -19,4 +19,9 @@ else
 SMCROUTE_CONF_OPTS += --without-libcap
 endif
 
+define SMCROUTE_INSTALL_INIT_SYSV
+	$(INSTALL) -m 755 -D package/smcroute/S41smcroute \
+		$(TARGET_DIR)/etc/init.d/S41smcroute
+endef
+
 $(eval $(autotools-package))


More information about the buildroot mailing list