journalctl - çağrı cihazından çıkmadan takip etmeyi durdur


10

Eğer yaparsam:

journalctl -u my-service

sonra a Shift-Fsayfalama sırasında takip etmek için (interrupt to abort), çağrı cihazı çıkmadan nasıl yapabilirim ?

İle less, ben genellikle sadece ^Cben journalctl içinde bunu yaparsan ancak, tüm çağrı cihazı çıkar.

Yanıtlar:


6

Sen edilir kullanarak lessbu noktada, ancak ^ C yüzünden o tarafından çağrılan nasıl farklı şekilde davranıyor journalctl. Journalctl tarafından iletilen bayraklar lessaşağıdaki varsayılanları içerir:

 FRSXMK

Bunlardan "K" seçeneğinin burada geçerli olduğunu düşünüyorum:

-K veya --quit-on-intr Bir kesme karakteri (genellikle ^ C) yazıldığında hemen (durum 2 ile) daha az çıkılmasına neden olur. Normalde, bir kesme karakteri ne yaparsa yapsın daha az durur ve komut istemine geri döner. Bu seçeneğin kullanılmasının "F" komutundan komut istemine dönülmesini imkansız hale getirdiğini unutmayın.

Yani, ortamınızda $ SYSTEMD_LESS ayarlama ve "K" seçeneği kullanmamak gerekir sorunu çözmek, bu Ubuntu 16.04 benim test çalışmaları vermedi:

 SYSTEMD_LESS="FRSXM"journalctl -u nginx

Ancak, aşağıdaki varyasyonların davranışlarını karşılaştırarak K bayrağının ilişkili olduğunu doğrulamak istediğiniz davranışı alabilirsiniz:

# ^C after Shift-F does not completely quit
journalctl -u nginx | less -FRSXM

# ^C after Shift-F completely quits
journalctl -u nginx | less -FRSXMK

Aynı sorun ayarına sahip SYSTEMD_LESS, ama bu teyit etmez gönderilen bayrakları değiştirmek less. PID'sini bulup lessyaparak kontrol edebilirsiniz hd /proc/<pid>/environ. Ortam değişkenini arayın LESS. Orada olacak ama boş olacak (normalde FRSXMK). Bu _Kbayrağın ayarlanıp ayarlanmadığını görmek için daha azını da yazabilirsiniz . Normalde öyle. Eğer geçerseniz SYSTEMD_LESS=değil. Journalctl sürecinin çağrı cihazı geldiğinde işaret ettiğini düşünüyorum SIGINT, bu yüzden lessbu ayara bakılmaksızın ölür.

İşte bununla nasıl başa çıkabileceğinizi gösteren çılgın bir

0

Ben de bu sinir bozucu garipliği yaşadım. Gerçekten
ayar yapma SYSTEMD_LESSişe yaramaz çünkü journalctl SIGTERMbir ^ C aldığında çağrı cihazına bir gönderir .

Benim "çözüm" böyle bir bash takma adı kullanmak oldu:

alias log='SYSTEMD_COLORS=1 journalctl | less -FRSXM'

Bu, varsayılan çağrı cihazını geçersiz kılar ve izlemeyi yarıda kestiğinizde çıkmaz.
Ortam değişkeni SYSTEMD_COLORSrenklere sahip olmanın ve a'dan sonra daha az çalışmaya devam etmenin tek yolu gibi görünüyor SIGINT.

Bu Debian 9 kurulumumda çalışıyor.


Hmm, bu takip etmeyi bıraktı. Ama öyle de oldu journalctl | less, bir hata olabilir.
clst
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.