From: Carlos Santos <casantos@datacom.com.br>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH 3/8] rsyslog: update S01logging
Date: Mon, 9 Jul 2018 20:31:02 -0300 (BRT) [thread overview]
Message-ID: <1421354433.2544023.1531179062394.JavaMail.zimbra@datacom.com.br> (raw)
In-Reply-To: <bc1a7b00-5a50-8084-77ad-4429c856be3c@green-communications.fr>
> From: "Nicolas Cavallari" <Nicolas.Cavallari@green-communications.fr>
> To: "DATACOM" <casantos@datacom.com.br>, "buildroot" <buildroot@buildroot.org>
> Cc: "ratbert90" <aduskett@gmail.com>
> Sent: Monday, July 9, 2018 5:03:37 AM
> Subject: Re: [Buildroot] [PATCH 3/8] rsyslog: update S01logging
> Hello,
>
> On 09/07/2018 05:31, Carlos Santos wrote:
>> --- 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" || {
>
> I find it strange to use test here and use [ ] everywhere else.
> And why not use if here ?
The "[ command ] &&" sequence is less readable, IMO. I'm doing the same in all
scripts.
>> + 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 && \
>
> Why do you disable backgrounding in rsyslog and ask start-stop-daemon to do it
> instead ?
It prevents hanging the boot sequence by putting a seemingly innocent "-n"
in RSYSLOGD_ARGS (in /etc/default/logging). It's impossible to interrupted
the script with Ctrl-C because stdin is redirected to /dev/null and, since
logging is the first service to start, there is no way to access the system
remotely via SSH or telnet to kill rsyslogd.
> This may prevent rsyslogd to report errors and exit 1 before it daemonize
> itself.
It's a trade-off. I chose safety.
>> + 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 && \
>
> This duplicates code, and the error reporting is less precise than before. It
> will just say "FAIL" if the daemon is not running or fails to start.
>
>> + echo "OK"
>> + } || {
>> + echo "FAIL"
>> + exit 1
>> + }
>> +}
>> +
>> +# rsyslogd ignores SIGHUP, SIGUSRx, so simply restart.
>
> Are you sure about that ? the man page says otherwise.
I will update the comment to clarify that rsyslogd does not restart on
SIGHUP, just closes all open files.
--
Carlos Santos (Casantos) - DATACOM, P&D
?Marched towards the enemy, spear upright, armed with the certainty
that only the ignorant can have.? ? Epitaph of a volunteer
next prev parent reply other threads:[~2018-07-09 23: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 ` [Buildroot] [PATCH 3/8] rsyslog: update S01logging Carlos Santos
2018-07-09 8:03 ` Nicolas Cavallari
2018-07-09 23:31 ` Carlos Santos [this message]
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=1421354433.2544023.1531179062394.JavaMail.zimbra@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