jurnalctl - berhenti mengikuti tanpa keluar pager

10

Bila saya lakukan:

journalctl -u my-service

lalu a Shift-Funtuk mengikuti sambil paging, bagaimana caranya (interrupt to abort)tanpa keluar dari pager?

Dengan less, saya biasanya adil ^C, tetapi jika saya melakukannya di journalctl, ia keluar dari seluruh halaman.

MikeKusold
sumber

Jawaban:

6

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
Mark Stosberg
sumber
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.
Berikut ini adalah bukti konsep basi
0

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.

Ini berfungsi pada instalasi Debian 9 saya.

clst
sumber
Hmm, ini berhenti mengikuti. Tapi begitu juga journalctl | less, mungkin bug.
clst