If I do:
journalctl -u my-service
Shift-F to follow while paging, how do I
(interrupt to abort) without exiting the pager?
less, I typically just
^C, but if I do that in journalctl, it exits the entire pager.
Server Fault is a question and answer site for system and network administrators. It only takes a minute to sign up.Sign up to join this community
You are using
less at that point, but ^C is behaving differently due to how it was invoked by
journalctl. The flags that journalctl passes to
less include the following defaults:
Of these, I think the "K" option applies here:
-K or --quit-on-intr Causes less to exit immediately (with status 2) when an interrupt character (usually ^C) is typed. Normally, an interrupt character causes less to stop whatever it is doing and return to its command prompt. Note that use of this option makes it impossible to return to the command prompt from the "F" command.
So, setting $SYSTEMD_LESS in your environment and omitting the "K" option should resolve the issue, it didn't work on my test on Ubuntu 16.04:
SYSTEMD_LESS="FRSXM"journalctl -u nginx
However, you can get the behavior you want confirm that the K flag is related by comparing the behavior of the following variations:
# ^C after Shift-F does not completely quit journalctl -u nginx | less -FRSXM # ^C after Shift-F completely quits journalctl -u nginx | less -FRSXMK
I also just experienced this annoying quirk.
SYSTEMD_LESS indeed does not work because journalctl will send a
SIGTERM to the pager when it receives a ^C.
My "solution" was to use a bash alias like this:
alias log='SYSTEMD_COLORS=1 journalctl | less -FRSXM'
This overrides the default pager and does not exit when you interrupt follow.
The environment variable
SYSTEMD_COLORS seems to be the only way to have colors and keep less running after a
This works on my Debian 9 installation.