Anda sedang menggunakan lesspada saat itu, tetapi ^ C berperilaku berbeda karena bagaimana hal itu dipanggil oleh journalctl. Bendera yang dilewati jurnalctl untuk lessmenyertakan 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
Saya memiliki pengaturan masalah yang sama SYSTEMD_LESS, tetapi saya mengkonfirmasi ini tidak mengubah flag yang dikirim ke less. Anda dapat memeriksa dengan menemukan PID lessdan melakukan hd /proc/<pid>/environ. Cari variabel lingkungan LESS. Itu akan ada di sana tetapi kosong (biasanya itu FRSXMK). Anda juga dapat mengetikkan _Kkurang dari itu sendiri untuk melihat apakah bendera itu diatur. Biasanya itu. Jika Anda lulus SYSTEMD_LESS=tidak. Saya pikir proses jurnalctl memberi sinyal pager ketika mendapat SIGINT, itulah sebabnya lessmati terlepas dari pengaturan itu.
Saya juga baru saja mengalami kekhasan yang menyebalkan ini.
Pengaturan SYSTEMD_LESSmemang tidak berhasil karena jurnalctl akan mengirim SIGTERMpager ketika menerima ^ C.
"Solusi" saya adalah menggunakan alias bash seperti ini:
alias log='SYSTEMD_COLORS=1 journalctl | less -FRSXM'
Ini menimpa pager default dan tidak keluar ketika Anda mengganggu ikuti.
Variabel lingkungan SYSTEMD_COLORStampaknya menjadi satu-satunya cara untuk memiliki warna dan tetap kurang berjalan setelah a SIGINT.
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.Saya juga baru saja mengalami kekhasan yang menyebalkan ini.
Pengaturan
SYSTEMD_LESS
memang tidak berhasil karena jurnalctl akan mengirimSIGTERM
pager ketika menerima ^ C."Solusi" saya adalah menggunakan alias bash seperti ini:
Ini menimpa pager default dan tidak keluar ketika Anda mengganggu ikuti.
Variabel lingkungan
SYSTEMD_COLORS
tampaknya menjadi satu-satunya cara untuk memiliki warna dan tetap kurang berjalan setelah aSIGINT
.Ini berfungsi pada instalasi Debian 9 saya.
sumber
journalctl | less
, mungkin bug.