diff mbox series

[next,2/3] package/inadyn: refactor start script

Message ID 20211205102907.2836980-3-troglobit@gmail.com
State Accepted
Headers show
Series package/inadyn: start script rework + repost | expand

Commit Message

Joachim Wiberg Dec. 5, 2021, 10:29 a.m. UTC
This patch is a complete rewrite of the Inadyn start script, based on
the BusyBox S01syslogd template.  Additional features, compared to the
template, are limited to the ability to:

 - Check if enabled, using an ENABLED="yes" from /etc/default/inadyn,
   this for compatibility with the previous version of the script
 - Override INADYN_ARGS from /etc/default/inadyn
 - A reload command that sends SIGHUP, since that works and is both
   quicker and a less resource intensive operation

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
---
 package/inadyn/S70inadyn | 100 +++++++++++++++++++++++++--------------
 1 file changed, 65 insertions(+), 35 deletions(-)
 mode change 100644 => 100755 package/inadyn/S70inadyn

Comments

Peter Korsgaard Jan. 9, 2022, 8:57 a.m. UTC | #1
>>>>> "Joachim" == Joachim Wiberg <troglobit@gmail.com> writes:

 > This patch is a complete rewrite of the Inadyn start script, based on
 > the BusyBox S01syslogd template.  Additional features, compared to the
 > template, are limited to the ability to:

 >  - Check if enabled, using an ENABLED="yes" from /etc/default/inadyn,
 >    this for compatibility with the previous version of the script
 >  - Override INADYN_ARGS from /etc/default/inadyn
 >  - A reload command that sends SIGHUP, since that works and is both
 >    quicker and a less resource intensive operation

 > Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
 > ---
 >  package/inadyn/S70inadyn | 100 +++++++++++++++++++++++++--------------
 >  1 file changed, 65 insertions(+), 35 deletions(-)
 >  mode change 100644 => 100755 package/inadyn/S70inadyn

 > diff --git a/package/inadyn/S70inadyn b/package/inadyn/S70inadyn
 > old mode 100644
 > new mode 100755
 > index ca7b414678..d44acacec3
 > --- a/package/inadyn/S70inadyn
 > +++ b/package/inadyn/S70inadyn
 > @@ -1,44 +1,74 @@
 >  #!/bin/sh
 > +# Customizations are sourced from /etc/default/inadyn.  For example,
 > +# override INADYN_ARGS to adjust log level, add a startup delay, etc.
 >  #
 > -# Start & stop the inadyn client
 > -#
 > +# NOTE: to start, add a line ENABLED="yes" to /etc/default/inadyn
 > +
 > +DAEMON="inadyn"
 > +PIDFILE="/var/run/$DAEMON.pid"
 > +
 > +INADYN_ARGS=""
 
 > -CONFIG=/etc/inadyn.conf
 > +# shellcheck source=/dev/null
 > +[ -r "/etc/default/$DAEMON" ] && . "/etc/default/$DAEMON"
 
 > -# check if CONFIG exists, print message & exit if it doesn't
 > -[ ! -f $CONFIG ] && ( echo "The config file "$CONFIG" is missing...exiting now." && exit 2 )
 > +start()
 > +{

Our other init scripts have the { on the same line as the function, so
changed that and committed, thanks.
diff mbox series

Patch

diff --git a/package/inadyn/S70inadyn b/package/inadyn/S70inadyn
old mode 100644
new mode 100755
index ca7b414678..d44acacec3
--- a/package/inadyn/S70inadyn
+++ b/package/inadyn/S70inadyn
@@ -1,44 +1,74 @@ 
 #!/bin/sh
+# Customizations are sourced from /etc/default/inadyn.  For example,
+# override INADYN_ARGS to adjust log level, add a startup delay, etc.
 #
-# Start & stop the inadyn client
-#
+# NOTE: to start, add a line ENABLED="yes" to /etc/default/inadyn
+
+DAEMON="inadyn"
+PIDFILE="/var/run/$DAEMON.pid"
+
+INADYN_ARGS=""
 
-CONFIG=/etc/inadyn.conf
+# shellcheck source=/dev/null
+[ -r "/etc/default/$DAEMON" ] && . "/etc/default/$DAEMON"
 
-# check if CONFIG exists, print message & exit if it doesn't
-[ ! -f $CONFIG ] && ( echo "The config file "$CONFIG" is missing...exiting now." && exit 2 )
+start()
+{
+	printf 'Starting %s: ' "$DAEMON"
+	if [ "$ENABLED" != "yes" ]; then
+		echo "SKIPPED"
+		exit 0
+	fi
+	# shellcheck disable=SC2086 # we need the word splitting
+	start-stop-daemon -S -q -p "$PIDFILE" -x "/usr/sbin/$DAEMON" \
+			  -- $INADYN_ARGS
+	status=$?
+	if [ "$status" -eq 0 ]; then
+		echo "OK"
+	else
+		echo "FAIL"
+	fi
+	return "$status"
+}
 
-# Allow a few customizations from a config file. Especially inadyn
-# must be explicitly enabled by adding ENABLED="yes" in this file.
-test -r /etc/default/inadyn && . /etc/default/inadyn
+stop()
+{
+	printf 'Stopping %s: ' "$DAEMON"
+	start-stop-daemon -K -q -p "$PIDFILE" -x "/usr/sbin/$DAEMON"
+	status=$?
+	if [ "$status" -eq 0 ]; then
+		rm -f "$PIDFILE"
+		echo "OK"
+	else
+		echo "FAIL"
+	fi
+	return "$status"
+}
+
+restart()
+{
+	stop
+	sleep 1
+	start
+}
+
+reload()
+{
+	printf 'Reloading %s: ' "$DAEMON"
+	start-stop-daemon -K -s HUP -q -p "$PIDFILE" -x "/usr/sbin/$DAEMON"
+	status=$?
+	if [ "$status" -eq 0 ]; then
+		echo "OK"
+	else
+		echo "FAIL"
+	fi
+	return "$status"
+}
 
 case "$1" in
-	start)
-		printf "Starting inadyn: "
-		if test "${ENABLED}" != "yes" ; then
-		    echo "SKIPPED"
-		    exit 0
-		fi
-		start-stop-daemon -b -q -S -p /var/run/inadyn.pid -x /usr/sbin/inadyn
-		[ $? = 0 ] && echo "OK" || echo "FAIL"
-		;;
-	stop)
-		printf "Stopping inadyn: "
-		if test "${ENABLED}" != "yes" ; then
-		    echo "SKIPPED"
-		    exit 0
-		fi
-		start-stop-daemon -q -K -p /var/run/inadyn.pid -x /usr/sbin/inadyn
-		[ $? = 0 ] && echo "OK" || echo "FAIL"
-		rm -f /var/run/inadyn.pid
-		;;
-	restart)
-		"$0" stop
-		"$0" start
-		;;
-		*)
-		echo "Usage: $0 {start|stop|restart}"
+	start|stop|restart|reload)
+		"$1";;
+	*)
+		echo "Usage: $0 {start|stop|restart|reload}"
 		exit 1
 esac
-
-exit $?