package/inadyn: refactor start script

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>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This commit is contained in:
Joachim Wiberg 2021-12-05 11:29:05 +01:00 committed by Peter Korsgaard
parent 01a7e1a9f8
commit 787f7b58a7

96
package/inadyn/S70inadyn Normal file → Executable file
View File

@ -1,44 +1,70 @@
#!/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
CONFIG=/etc/inadyn.conf
DAEMON="inadyn"
PIDFILE="/var/run/$DAEMON.pid"
# check if CONFIG exists, print message & exit if it doesn't
[ ! -f $CONFIG ] && ( echo "The config file "$CONFIG" is missing...exiting now." && exit 2 )
INADYN_ARGS=""
# 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
# shellcheck source=/dev/null
[ -r "/etc/default/$DAEMON" ] && . "/etc/default/$DAEMON"
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"
}
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 $?