
Ich wollte wissen, wie Syslog verwendet wird, wenn mehrere Prozesse versuchen, in dieselbe Protokolldatei zu schreiben, wie
for i in $var
do
some process >> logfile &
done
wait
Antwort1
Du kannst tun
some process | logger &
um Prozesse zu starten und deren Ausgabe an Syslog weiterzuleiten. Beachten Sie, dass die Standardfunktion „Benutzer“ und die Standardebene „Hinweis“ ist. Sie können sie mit der -p
Option ändern.
Der Grund, warum dies problemlos funktioniert, ist, dass die Prozesse nicht direkt in die Zieldatei schreiben. Sie senden ihre Nachrichten an den Syslog-Daemon, der das Schreiben in die entsprechenden Dateien verwaltet. Soweit ich die Dinge verstehe, wäre die Atomizität zeilenbasiert, d. h. jede Ausgabezeile eines Prozesses würde ohne Störungen an Syslog gehen, aber mehrzeilige Nachrichten könnten Zeilen von anderen Prozessen eingemischt bekommen.