Wo stdout und stderr eines Daemons protokolliert werden

2

Ich schreibe meinen ersten Linux-Daemon und frage mich, wo ich seine stdout und stderr protokollieren soll. Es wird für alle Benutzer funktionieren. Ich denke, ich könnte es tun, wo immer ich wollte, ich frage mich nur, ob es einige gute Praktiken gibt, an die ich mich halten könnte.

Vielen Dank.

XNor
quelle
Ich glaube, die Antwort auf Ihre Frage ist hier stackoverflow.com/questions/13180720/…
DarkEvE
Hallo Nabil. Danke für diesen Link, es ist sehr interessant. Es sagt jedoch nichts darüber aus, wo ein guter Ort ist, um diese Dateien zu erstellen, die als stderr, stdout und stdin funktionieren (so etwas wie / var / log / my_daemon /?)
XNor
* nix-Daemons verwenden per Definition keine stdin, stdout oder stderr, da sie kein steuerndes Terminal haben.
fpmurphy

Antworten:

1

Die eigentliche Definition eines Daemons ist, dass nichts mit STDOUT und STDERR (und STDIN) verknüpft ist. Die Protokollierung sollte über einen separaten Kanal erfolgen, z. B. über die Syslog-Funktion (siehe GNU syslog docs ). Syslog unterstützt verschiedene Schweregrade (Debug / Information / Warnung / Kritisch usw.), mit denen Sie die Menge an Informationen steuern können, die protokolliert werden.

mtak
quelle
Vielen Dank, mtak! und wissen Sie, wo es ein guter Ordner ist, um diese Protokolldateien zu erstellen? / var / log / my_daemon / wäre eine gute Wahl? Vielen Dank
XNor
Laut Dateisystem-Hierarchie-Standard es ist. Wenn Sie Syslog verwenden, wird automatisch ermittelt, wo die Protokolldateien abgelegt werden sollen, und Sie geben dem Benutzer die Möglichkeit, die Protokollierung an seine Anforderungen anzupassen.
mtak