Ich habe eine laufende systemd-Einheit und möchte ihr Protokoll verfolgen.
Ich weiß, dass ich das Protokoll der Einheit wie folgt anzeigen kann:
journalctl -u my_unit.service
Dadurch werden jedoch nur die aktuellen Protokolle gedruckt, ohne ihnen zu folgen.
Ich weiß, dass ich systemd
Protokolle auch wie folgt verfolgen kann:
journalctl -f
Dadurch wird die Ausgabe jedoch mit Spam überflutet, da alle bekannten Protokolle verfolgt werden, sodass ich nach dem suchen muss, was mich interessiert.
Eine vorübergehende Lösung scheint darin zu bestehen, verfolgte Protokolle an Grep weiterzuleiten, um die Ausgabe zu filtern. Dies ist jedoch keine sehr systematische Lösung:
journalctl -f | grep "what i'm interested in"
Gibt es keinen Befehl zum Verfolgen der Protokolle bestimmter Einheiten?
Was ich versucht habe, aber nicht funktioniert hat:
journalctl -uf my_unit.service
Antwort1
Ich habe festgestellt, dass ich die Argumente in der falschen Reihenfolge verwende. Protokolle können für eine einzelne Einheit tatsächlich wie folgt verfolgt werden:
journalctl -fu my_unit.service
Weitere Arbeitsvarianten:
journalctl -f -u my_unit.service
journalctl -u my_unit.service -f
Ausjournalctl
Handbuch:
-u
,--unit=UNIT|PATTERN
Meldungen für die angegebene Systemd-Einheit anzeigen
UNIT
(wie z. B. eine Serviceeinheit) oder für eine der Einheiten, die mitPATTERN
. Wenn ein Muster angegeben ist, wird eine Liste der im Journal gefundenen Unit-Namen mit dem angegebenen Muster verglichen und alle Übereinstimmungen werden verwendet. Für jeden Unit-Namen wird eine Übereinstimmung für Nachrichten von der Unit (" ") hinzugefügt, zusammen mit zusätzlichen Übereinstimmungen für Nachrichten von systemd und Nachrichten über Coredumps für die angegebene Unit._SYSTEMD_UNIT=UNIT
Dieser Parameter kann mehrfach angegeben werden.
-f, --follow
Zeigen Sie nur die aktuellsten Journaleinträge an und drucken Sie kontinuierlich neue Einträge, sobald diese dem Journal angehängt werden.