Ich überprüfe den Dienststatus mit systemctl status service-name
.
Standardmäßig sehe ich nur wenige Zeilen, also füge ich -n50
hinzu, um mehr zu sehen.
Manchmal möchte ich das gesamte Protokoll sehen, von Anfang an. Es könnte 1000e von Zeilen haben.
Jetzt prüfe ich es mit -n10000
, aber das sieht nicht nach einer sauberen Lösung aus.
Gibt es eine Option, um das gesamte systemd-Dienstprotokoll zu überprüfen, ähnlich wie der Befehl less
?
Verwenden Sie einfach den Befehl journalctl
, wie in:
journalctl -u service-name.service
Oder, um nur die Protokollmeldungen für den aktuellen Bootvorgang zu sehen:
journalctl -u service-name.service -b
Für Dinge, die <etwas>.service
heißen, können Sie eigentlich nur <etwas>
verwenden, wie in:
journalctl -u service-name
Aber für andere Arten von Einheiten (Sockets, Targets, Timer, etc.) müssen Sie explizit sein.
In den obigen Befehlen ist das -u
Flag kurz für --unit
und gibt den Namen der Einheit an, an der Sie interessiert sind. b" ist die Abkürzung für "boot" und schränkt die Ausgabe auf den aktuellen Bootvorgang ein, damit Sie nicht viele ältere Meldungen sehen. Siehe die journalctl man page für weitere Informationen.
systemctl
kann die komplette Ausgabe seiner Statusauflistung, ohne Abschneiden, durch Hinzufügen des -l
-Flags enthalten:
systemctl -l status service-name
-l
: schneidet Einträge mit Ellipsen nicht ab (...)
--no-pager
kann hinzugefügt werden, um das Aufrufen eines Pagers zu vermeiden, wenn die Ausgabe ein interaktives Terminal ist.
mit journalctl
Protokolle in eine Textdatei schreiben
und lesen sie von unten nach oben
journalctl -u service-name.service > file_name.txt
tail -r file_name.txt