[Fli4l_dev] syslogd "stirbt" bei 'killall -HUP syslogd'

Alexander Dahl lespocky at web.de
Mi Dez 11 10:37:42 CET 2019


Hallo Hans,

>>> Hat sich in der fli4l v4 Version etwas am verhalten des syslog Dämons
>>> bezüglich des -HUP Signals geändert?
>> 
>> Der kommt bei fli4l 4.0 aktuell aus BusyBox v1.27.2, allerdings mit
>> einigen Patches obendrauf. In einem sauberen BusyBox 1.27.2 ignoriert
>> der syslogd ein SIGHUP einfach. Unser Patch
>> package/busybox/9004-syslogd-pipe.patch ändert dieses Verhalten
>> allerdings. Laut package/busybox/README.patches soll der folgendes
>> machen:
>> 
>> 9004-syslogd-pipe.patch (kristov, Bug #5558) -> Update Roland for 1.23
>> * Allows FIFOs (|<path>) as log destiniations in /etc/syslog.conf. Also, ignore
>>    SIGPIPE signals which occur if the process reading the pipe disappears.
>> 
>> Diesen Patch haben wir drin seit r43370 (FFL-1553), aber wenn ich das
>> richtig interpretiere hat der syslogd da auch vorher nicht auf das -HUP
>> die Logdatei neu geöffnet, sondern wenn dann durch einen anderen
>> Mechanismus? In upstream busybox ist das Verhalten jedenfalls seit 2002
>> unverändert so:
>> 
>>      signal(SIGHUP, SIG_IGN);
>
> ähh - sorry, das sagt mir nicht wirklich was (SIGHUP wird ignoriert?)

Genau. Der busybox ungepatchte syslogd ignoriert SIGHUP in allen von mir
angeschauten Versionen.

> In fli4l 3.x hat sich der syslogd noch genau so verhalten, wie es z.B. 
> in <https://linux.die.net/man/8/syslogd> festgehalten ist:
>
>> SIGHUP
>> 
>> This lets syslogd perform a re-initialization. All open files are closed, the configuration file (default is /etc/syslog.conf) will be reread and the syslog(3) facility is started again. 
>
> D.h. der verschobene alte syslog.log wird geschlossen und ein neuer 
> angelegt - genau das, was ich brauche.

Komisch. Entweder verwenden wir da in 3.x andere Patches oder der
syslogd hat das auch ohne SIGHUP neu angelegt, was wohl das Ziel von
einem unserer Patches ist.

> Wenn der syslogd in busybox völlig anders reagiert - warum greift ihr 
> dann nciht auf den "original" syslogd zurück? Das Platzargument zeiht ja 
> seit dem Ende der Diskettenzeit nicht mehr wirklich.

Es gibt nicht den einen syslogd. Aus dem Hut fallen mir mindestens
rsyslog und syslog-ng als mögliche Implementierungen ein und ich wette
auch systemd hat da noch was eigenes. Das "Original" stammt aus dem
Projekt "sendmail" und da kommt man wohl nicht mehr ran. In meinem
Debian hab ich im Paketmanager gesehen, dass wohl auch inetutils noch
einen eigenen syslog mitbringt.

> Das ist für mich ein (eben entdecktes) KO-Kriterium gegen die Umstellung 
> der Produktionsrouter auf V4.

Nichts, was sich nicht lösen ließe. Dass der syslogd sich nach SIGHUP
beendet, sollte jedenfalls nicht sein, das müssen wir in unseren Patches
gerade ziehen. Hast Du schon ein Ticket für diesen Fehler angelegt?

Wie gesagt, ein ungepatchter busybox syslogd beendet sich
auch nicht, das konnte ich auf einem anderen embedded system (fli4l)
eben nachvollziehen. Der legt allerdings auch keine neue Datei an. ;-)

Grüße
Alex

-- 
***** http://blog.antiblau.de/ *****************************
GnuPG-FP: C28E E6B9 0263 95CF 8FAF  08FA 34AD CD00 7221 5CC6


Mehr Informationen über die Mailingliste Fli4l_dev