Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Carlos Santos <casantos@datacom.com.br>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH 3/8] rsyslog: update S01logging
Date: Mon,  9 Jul 2018 00:31:29 -0300	[thread overview]
Message-ID: <20180709033134.22175-4-casantos@datacom.com.br> (raw)
In-Reply-To: <20180709033134.22175-1-casantos@datacom.com.br>

Reformat and fix rsyslog startup script for better quality and code
style:

- Indent with tabs, not spaces.
- Use logic operators && and || to detect/handle errors, which provides
  better readability than nested if/then/else blocks.
- Use brackets for blocking, also improving readability.
- Rewrite restart to report the result of the whole operation instead of
  invoking stop, start and report OK twice.
- Add a "reload" option, implemented as restart, but with a nickname to
  report the result of the expected operation.
- Support a configuration file at /etc/default (an example file will be
  added in forthcomming patch).
- 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>
---
 package/rsyslog/S01logging | 74 ++++++++++++++++++++++++++------------
 1 file changed, 51 insertions(+), 23 deletions(-)

diff --git a/package/rsyslog/S01logging b/package/rsyslog/S01logging
index 8e4a59c2d5..94b5a1bd96 100644
--- a/package/rsyslog/S01logging
+++ b/package/rsyslog/S01logging
@@ -1,36 +1,64 @@
 #!/bin/sh
 
+RSYSLOGD_ARGS=""
+ENABLED="yes"
+
+# shellcheck source=/dev/null
+[ -r /etc/default/logging ] && . /etc/default/logging
+
+DAEMON="rsyslogd"
+
+test "$ENABLED" = "yes" || {
+	printf '%s is disabled\n' "$DAEMON"
+	exit 0
+}
+
 start() {
-  printf "Starting rsyslog daemon: "
-  start-stop-daemon -S -q -p /var/run/rsyslogd.pid --exec /usr/sbin/rsyslogd
-  [ $? = 0 ] && echo "OK" || echo "FAIL"
+	printf 'Starting %s: ' "$DAEMON"
+	{
+		# shellcheck disable=SC2086 # we need the word splitting
+		start-stop-daemon -b -S -q -p /var/run/rsyslogd.pid -x /usr/sbin/rsyslogd -- -n $RSYSLOGD_ARGS && \
+		echo "OK"
+	} || {
+		echo "FAIL"
+		exit 1
+	}
 }
 
 stop() {
-  printf "Stopping rsyslog daemon: "
-  start-stop-daemon -K -q -p /var/run/rsyslogd.pid
-  [ $? = 0 ] && echo "OK" || echo "FAIL"
+	printf 'Stopping %s: ' "$DAEMON"
+	{
+		start-stop-daemon -K -q -p /var/run/rsyslogd.pid && \
+		echo "OK"
+	} || {
+		echo "FAIL"
+		exit 1
+	}
 }
 
 restart() {
-  stop
-  sleep 1
-  start
+	printf '%s %s: ' "${1:-Restarting}" "$DAEMON"
+	{
+		# shellcheck disable=SC2086 # we need the word splitting
+		start-stop-daemon -K -q -p /var/run/rsyslogd.pid && \
+		sleep 1 && \
+		start-stop-daemon -b -S -q -p /var/run/rsyslogd.pid -x /usr/sbin/rsyslogd -- -n $RSYSLOGD_ARGS && \
+		echo "OK"
+	} || {
+		echo "FAIL"
+		exit 1
+	}
+}
+
+# rsyslogd ignores SIGHUP, SIGUSRx, so simply restart.
+reload() {
+	restart "Reloading"
 }
 
 case "$1" in
-  start)
-    start
-    ;;
-  stop)
-    stop
-    ;;
-  restart|reload)
-    restart
-    ;;
-  *)
-    echo "Usage: $0 {start|stop|restart}"
-    exit 1
+        start|stop|restart|reload)
+                "$1";;
+        *)
+                echo "Usage: $0 {start|stop|restart|reload}"
+                exit 1
 esac
-
-exit $?
-- 
2.17.1

  parent reply	other threads:[~2018-07-09  3:31 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-09  3:31 [Buildroot] [PATCH 0/8] init scripts: rewrite S01logging Carlos Santos
2018-07-09  3:31 ` [Buildroot] [PATCH 1/8] busybox: update S01logging Carlos Santos
2018-07-09  8:33   ` Nicolas Cavallari
2018-07-09 21:23     ` Arnout Vandecappelle
2018-07-09 21:35   ` Arnout Vandecappelle
2018-07-09  3:31 ` [Buildroot] [PATCH 2/8] busybox: add logging configuration file Carlos Santos
2018-07-09  3:31 ` Carlos Santos [this message]
2018-07-09  8:03   ` [Buildroot] [PATCH 3/8] rsyslog: update S01logging Nicolas Cavallari
2018-07-09 23:31     ` Carlos Santos
2018-07-10  7:58       ` Arnout Vandecappelle
2018-07-09 21:52   ` Arnout Vandecappelle
2018-07-09  3:31 ` [Buildroot] [PATCH 4/8] rsyslog: add logging configuration file Carlos Santos
2018-07-09  3:31 ` [Buildroot] [PATCH 5/8] sysklogd: update S01logging Carlos Santos
2018-07-09 22:00   ` Arnout Vandecappelle
2018-07-09  3:31 ` [Buildroot] [PATCH 6/8] sysklogd: add logging configuration file Carlos Santos
2018-07-09 22:04   ` Arnout Vandecappelle
2018-07-09  3:31 ` [Buildroot] [PATCH 7/8] rsyslog: update S01logging Carlos Santos
2018-07-09 22:05   ` Arnout Vandecappelle
2018-07-09 23:37     ` Carlos Santos
2018-07-09  3:31 ` [Buildroot] [PATCH 8/8] syslog-ng: add logging configuration file Carlos Santos
2018-07-09 21:09 ` [Buildroot] [PATCH 0/8] init scripts: rewrite S01logging Arnout Vandecappelle
2018-07-10 21:04 ` Yann E. MORIN

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=20180709033134.22175-4-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