Journalctl – stop following without exiting pager

journaldlesssystemd

If I do:

journalctl -u my-service

then a Shift-F to follow while paging, how do I (interrupt to abort) without exiting the pager?

With less, I typically just ^C, but if I do that in journalctl, it exits the entire pager.

Best Answer

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:

 FRSXMK

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
Related Topic