Anda sedang menggunakan less
pada saat itu, tetapi ^ C berperilaku berbeda karena bagaimana hal itu dipanggil oleh journalctl
. Bendera yang dilewati jurnalctl untuk less
menyertakan default berikut:
FRSXMK
Dari jumlah tersebut, saya pikir opsi "K" berlaku di sini:
-K atau --quit-on-intr
Menyebabkan kurang untuk segera keluar (dengan status 2) ketika karakter interupsi (biasanya ^ C) diketik. Biasanya, karakter interupsi menyebabkan lebih sedikit untuk menghentikan apa pun yang dilakukannya dan kembali ke prompt perintahnya. Perhatikan bahwa penggunaan opsi ini tidak memungkinkan untuk kembali ke prompt perintah dari perintah "F".
Jadi, menyetel $ SYSTEMD_LESS di lingkungan Anda dan menghilangkan opsi "K" harus menyelesaikan masalah, itu tidak berfungsi pada pengujian saya di Ubuntu 16.04:
SYSTEMD_LESS="FRSXM"journalctl -u nginx
Namun, Anda bisa mendapatkan perilaku yang Anda inginkan mengonfirmasi bahwa bendera K terkait dengan membandingkan perilaku variasi berikut:
# ^C after Shift-F does not completely quit
journalctl -u nginx | less -FRSXM
# ^C after Shift-F completely quits
journalctl -u nginx | less -FRSXMK
SYSTEMD_LESS
, tetapi saya mengkonfirmasi ini tidak mengubah flag yang dikirim keless
. Anda dapat memeriksa dengan menemukan PIDless
dan melakukanhd /proc/<pid>/environ
. Cari variabel lingkunganLESS
. Itu akan ada di sana tetapi kosong (biasanya ituFRSXMK
). Anda juga dapat mengetikkan_K
kurang dari itu sendiri untuk melihat apakah bendera itu diatur. Biasanya itu. Jika Anda lulusSYSTEMD_LESS=
tidak. Saya pikir proses jurnalctl memberi sinyal pager ketika mendapatSIGINT
, itulah sebabnyaless
mati terlepas dari pengaturan itu.