Wie schreibe ich init.d Skriptprotokollnachrichten auf die Festplatte?

7

Ich lasse Debian keuchend laufen. Viele Skripte in /etc/init.d/Gebrauch verschiedene Protokollierungsfunktionen definiert in der Linux Standard Base , wie log_success_msgund log_warning_msg. Die LSB-Dokumentation scheint etwas mehrdeutig zu sein, was genau diese Funktionen tun sollen:

Die Funktion log_success_msg veranlasst das System, eine Erfolgsmeldung in eine nicht angegebene Protokolldatei zu schreiben. Das Format der Nachricht ist nicht angegeben. Die Funktion log_success_msg kann auch eine Nachricht in die Standardausgabe schreiben.

Ich denke jedoch, dass dies so interpretiert wird, dass die Funktionen entweder in eine Protokolldatei oder nur in die Standardausgabe schreiben können. Es scheint, dass zumindest unter Debian nur eine Nachricht in die Standardausgabe geschrieben wird. Mein Verdacht wurde bestätigt, als ich die Datei ausgecheckt habe, in der diese Funktionen definiert sind. /lib/lsb/init-functionsEs wird nur aufgerufen echo, um eine Protokollmeldung anzuzeigen.

Dies ist kein hilfreiches Verhalten. Text, der beim Booten in die Standardausgabe geschrieben wird, verschwindet kurz nach Abschluss des Startvorgangs und kann in jedem Fall vom oberen Bildschirmrand gescrollt werden. Sicherlich wäre es weitaus hilfreicher, wenn diese Nachrichten tatsächlich in einer Protokolldatei gespeichert würden. Tatsächlich sehe ich nicht einmal den Sinn, etwas über diese Funktionen zu protokollieren, wenn sie nur zur Standardausgabe gehen.

Gibt es eine Möglichkeit, diese Protokolle in eine Datei zu übertragen? Kann mich jemand aufklären, warum Sie sich die Mühe machen würden, etwas nur für die Standardausgabe zu "protokollieren"? Welche hilfreiche Funktion hat es?

Jez
quelle
Ich habe gelesen, dass das Protokollieren der Nachricht auf der Festplatte obligatorisch ist und das Wiederholen auf stdout ein optionales Extra ist. Wenn Sie mit dem Debian-Verhalten Recht haben, sieht es für mich so aus, als ob Debian nicht konform ist.
James Youngman

Antworten:

5

Es sieht so aus, als ob die Lösung darin besteht, zu installieren bootlogdund zu platzieren

BOOTLOGD_ENABLE=yes

in /etc/default/bootlogd.

Verweise:

Mikel
quelle
1
Danke, das hat gut funktioniert! Sie haben es tatsächlich von Debian Squeeze auf Keuchen geändert. In Squeeze wurde Bootlogd standardmäßig installiert und Sie mussten es nur bearbeiten /etc/default/bootlogdund festlegen BOOTLOGD_ENABLE=yes. In wheezy haben sie bootlogd in ein separates Paket verschoben, sodass Sie das bootlogd-Paket installieren. Wenn dieses Paket installiert ist, wird die Startausgabe immer protokolliert /var/log/boot, und Sie müssen keine Konfigurationsdatei bearbeiten.
Jez