[Buildroot] [PATCH v2 2/3] package/smcroute: add sysv init script
Arnout Vandecappelle
arnout at mind.be
Sat Sep 11 14:33:04 UTC 2021
On 30/08/2021 17:30, Joachim Wiberg wrote:
> 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>
> ---
> package/smcroute/S41smcroute | 48 ++++++++++++++++++++++++++++++++++++
> package/smcroute/smcroute.mk | 5 ++++
> 2 files changed, 53 insertions(+)
> create mode 100755 package/smcroute/S41smcroute
>
> 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()
This is not how we usually write our start scripts, but I like it!
> +{
> + start-stop-daemon -q -p "$PIDFILE" "$@"
Can't you pass the -x here as well (which makes sure that you actually kill the
intended daemon in stop() and not some other random process that happens to have
the same PID)?
Anyway, I applied as is.
Regards,
Arnout
> + 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