From: Carlos Santos <casantos@datacom.com.br>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH v2 1/8] busybox: update S01logging
Date: Fri, 28 Sep 2018 23:49:59 -0300 [thread overview]
Message-ID: <20180929025006.8296-1-casantos@datacom.com.br> (raw)
Reformat and fix syslogd/klogd startup script for better quality and
code style:
- Detect and report start/stop errors (previous version ignored them and
always reported OK).
- Use a separate function for restart.
- Implement reload as restart.
- Support a configuration variable that completely disables the service
and issues a warning message on any invocation.
Signed-off-by: Carlos Santos <casantos@datacom.com.br>
---
Changes v1->v2
- Implement suggestions made by Nicolas Cavallari and Arnout Vandecappelle
---
package/busybox/S01logging | 82 +++++++++++++++++++++++++-------------
1 file changed, 54 insertions(+), 28 deletions(-)
diff --git a/package/busybox/S01logging b/package/busybox/S01logging
index fcb3e7d236..ddd27bba9a 100644
--- a/package/busybox/S01logging
+++ b/package/busybox/S01logging
@@ -1,40 +1,66 @@
#!/bin/sh
-#
-# Start logging
-#
-SYSLOGD_ARGS=-n
-KLOGD_ARGS=-n
-[ -r /etc/default/logging ] && . /etc/default/logging
+DAEMON="logging"
+SPIDFILE="/var/run/syslogd.pid"
+KPIDFILE="/var/run/klogd.pid"
+SYSLOGD_ARGS=""
+KLOGD_ARGS=""
+ENABLED="yes"
+
+# shellcheck source=/dev/null
+[ -r "/etc/default/$DAEMON" ] && . "/etc/default/$DAEMON"
+
+if [ "$ENABLED" != "yes" ]; then
+ printf '%s is disabled\n' "$DAEMON"
+ exit 0
+fi
+
+# BusyBox' syslogd and klogd do not create pidfiles, so use "-m" to instruct
+# start-stop-daemon to create them. This also means that we must pass "-n" to
+# sylogd and klogd in the command line.
start() {
- printf "Starting logging: "
- start-stop-daemon -b -S -q -m -p /var/run/syslogd.pid --exec /sbin/syslogd -- $SYSLOGD_ARGS
- start-stop-daemon -b -S -q -m -p /var/run/klogd.pid --exec /sbin/klogd -- $KLOGD_ARGS
- echo "OK"
+ printf 'Starting %s: ' "$DAEMON"
+ status=0
+ # shellcheck disable=SC2086 # we need the word splitting
+ start-stop-daemon -b -S -q -m -p "$SPIDFILE" -x /sbin/syslogd -- -n $SYSLOGD_ARGS || status=$?
+ start-stop-daemon -b -S -q -m -p "$KPIDFILE" -x /sbin/klogd -- -n $KLOGD_ARGS || status=$?
+ if [ "$status" -eq 0 ]; then
+ echo "OK"
+ else
+ echo "FAIL"
+ fi
+ return "$status"
}
stop() {
- printf "Stopping logging: "
- start-stop-daemon -K -q -p /var/run/syslogd.pid
- start-stop-daemon -K -q -p /var/run/klogd.pid
- echo "OK"
+ printf 'Stopping %s: ' "$DAEMON"
+ status=0
+ start-stop-daemon -K -q -p "$SPIDFILE" || status=$?
+ [ "$status" -eq 0 ] && rm -f "$SPIDFILE"
+ start-stop-daemon -K -q -p "$KPIDFILE" || status=$?
+ [ "$status" -eq 0 ] && rm -f "$KPIDFILE"
+ if [ "$status" -eq 0 ]; then
+ echo "OK"
+ else
+ echo "FAIL"
+ fi
+ return "$status"
}
-case "$1" in
- start)
- start
- ;;
- stop)
- stop
- ;;
- restart|reload)
+restart() {
stop
+ sleep 1
start
- ;;
- *)
- echo "Usage: $0 {start|stop|restart|reload}"
- exit 1
-esac
+}
-exit $?
+case "$1" in
+ start|stop|restart)
+ "$1";;
+ reload)
+ # Restart, since there is no true "reload" feature.
+ restart;;
+ *)
+ echo "Usage: $0 {start|stop|restart|reload}"
+ exit 1
+esac
--
2.17.1
next reply other threads:[~2018-09-29 2:49 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-09-29 2:49 Carlos Santos [this message]
2018-09-29 2:50 ` [Buildroot] [PATCH v2 2/8] busybox: add logging configuration file Carlos Santos
2018-10-01 13:12 ` Matthew Weber
2018-09-29 2:50 ` [Buildroot] [PATCH v2 3/8] rsyslog: update S01logging Carlos Santos
2018-09-29 2:50 ` [Buildroot] [PATCH v2 4/8] rsyslog: add logging configuration file Carlos Santos
2018-09-29 2:50 ` [Buildroot] [PATCH v2 5/8] sysklogd: update S01logging Carlos Santos
2018-09-29 2:50 ` [Buildroot] [PATCH v2 6/8] sysklogd: add logging configuration file Carlos Santos
2018-09-29 2:50 ` [Buildroot] [PATCH v2 7/8] syslog-ng: update S01logging Carlos Santos
2018-09-29 3:11 ` Chris Packham
2018-09-29 2:50 ` [Buildroot] [PATCH v2 8/8] syslog-ng: add logging configuration file Carlos Santos
2018-09-29 3:14 ` Chris Packham
2018-10-01 13:00 ` [Buildroot] [PATCH v2 1/8] busybox: update S01logging Matthew Weber
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180929025006.8296-1-casantos@datacom.com.br \
--to=casantos@datacom.com.br \
--cc=buildroot@busybox.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox