Wenn ich mache:
journalctl -u my-service
Shift-FWie kann ich dann beim Paging folgen, (interrupt to abort)ohne den Pager zu verlassen?
Mit less, normalerweise nur ^C, aber wenn ich das in journalctl mache, wird der gesamte Pager beendet.
Wenn ich mache:
journalctl -u my-service
Shift-FWie kann ich dann beim Paging folgen, (interrupt to abort)ohne den Pager zu verlassen?
Mit less, normalerweise nur ^C, aber wenn ich das in journalctl mache, wird der gesamte Pager beendet.
Antworten:
Sie sind mit lessan diesem Punkt, aber ^ C verhält sich anders darauf zurückzuführen, wie es durch aufgerufen wurde journalctl. Die Flags, die journalctl übergibt, lessenthalten die folgenden Standardeinstellungen:
FRSXMK
Ich denke, dass hier die Option "K" gilt:
-K oder --quit-on-intr Bewirkt, dass weniger sofort beendet wird (mit Status 2), wenn ein Interrupt-Zeichen (normalerweise ^ C) eingegeben wird. Normalerweise bewirkt ein Interrupt-Zeichen, dass weniger das, was es tut, stoppt und zur Eingabeaufforderung zurückkehrt. Beachten Sie, dass die Verwendung dieser Option es unmöglich macht, vom Befehl "F" zur Eingabeaufforderung zurückzukehren.
Das Setzen von $ SYSTEMD_LESS in Ihrer Umgebung und das Weglassen der Option "K" sollte das Problem beheben. Bei meinem Test unter Ubuntu 16.04 funktionierte dies nicht:
SYSTEMD_LESS="FRSXM"journalctl -u nginx
Sie können jedoch das gewünschte Verhalten erhalten, um zu bestätigen, dass das K-Flag in Beziehung steht, indem Sie das Verhalten der folgenden Variationen vergleichen:
# ^C after Shift-F does not completely quit
journalctl -u nginx | less -FRSXM
# ^C after Shift-F completely quits
journalctl -u nginx | less -FRSXMK
Ich habe auch gerade diese nervige Eigenart erlebt.
Die Einstellung SYSTEMD_LESSfunktioniert in der Tat nicht, da journalctl ein SIGTERMan den Pager sendet , wenn es ein ^ C empfängt.
Meine "Lösung" bestand darin, einen Bash-Alias wie diesen zu verwenden:
alias log='SYSTEMD_COLORS=1 journalctl | less -FRSXM'
Dies überschreibt den Standard-Pager und wird nicht beendet, wenn Sie die Verfolgung unterbrechen.
Die Umgebungsvariable SYSTEMD_COLORSscheint die einzige Möglichkeit zu sein, Farben zu haben und nach a weniger zu laufen SIGINT.
Dies funktioniert bei meiner Debian 9-Installation.
journalctl | lesskönnte auch ein Fehler sein.
SYSTEMD_LESS, aber ich bestätigte dies nicht die Flags gesendet ändernless. Sie können dies überprüfen, indem Sie die PID vonlessund tunhd /proc/<pid>/environ. Suchen Sie nach der UmgebungsvariablenLESS. Es wird dort sein, aber leer (normalerweise ist esFRSXMK). Sie können auch_Kweniger selbst eingeben, um festzustellen, ob dieses Flag gesetzt ist. Normalerweise ist es so. Wenn Sie bestehenSYSTEMD_LESS=, ist es nicht. Ich denke, der journalctl-Prozess signalisiert dem Pager, wenn er empfangen wirdSIGINT, weshalb erlessunabhängig von dieser Einstellung stirbt.