journalctl - หยุดการติดตามโดยไม่ออกจากเพจเจอร์


10

ถ้าฉันทำ:

journalctl -u my-service

จากนั้นShift-Fให้ทำตามในขณะที่เพจจิ้งฉันจะ(interrupt to abort)ไม่ออกเพจเจอร์ได้อย่างไร

ด้วยlessปกติฉันแค่^Cแต่ถ้าฉันทำเช่นนั้นใน journalctl มันจะออกจากเพจเจอร์ทั้งหมด

คำตอบ:


6

คุณจะใช้lessที่จุดนั้น แต่ ^ C journalctlมีพฤติกรรมที่แตกต่างกันเนื่องจากวิธีการที่มันจะถูกเรียกโดย ค่าสถานะที่ journalctl ส่งผ่านเพื่อlessรวมค่าเริ่มต้นต่อไปนี้:

 FRSXMK

ของเหล่านี้ฉันคิดว่าตัวเลือก "K" ใช้กับที่นี่:

-K หรือ --quit-on-intr ทำให้น้อยลงเพื่อออกทันที (ด้วยสถานะ 2) เมื่อพิมพ์อักขระขัดจังหวะ (ปกติ ^ C) ถูกพิมพ์ โดยปกติแล้วอักขระขัดจังหวะทำให้น้อยลงที่จะหยุดสิ่งที่มันทำและกลับไปที่พรอมต์คำสั่งของมัน โปรดทราบว่าการใช้ตัวเลือกนี้ทำให้ไม่สามารถกลับไปที่พรอมต์คำสั่งจากคำสั่ง "F"

ดังนั้นการตั้งค่า $ SYSTEMD_LESS ในสภาพแวดล้อมของคุณและการเว้นตัวเลือก "K" ควรแก้ไขปัญหามันไม่สามารถใช้กับการทดสอบบน Ubuntu 16.04 ได้:

 SYSTEMD_LESS="FRSXM"journalctl -u nginx

อย่างไรก็ตามคุณสามารถรับพฤติกรรมที่คุณต้องการยืนยันได้ว่าธง K นั้นสัมพันธ์กันโดยการเปรียบเทียบพฤติกรรมของรูปแบบต่อไปนี้:

# ^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แต่ฉันได้รับการยืนยันนี้จะlessเปลี่ยนธงที่ส่งไปยัง คุณสามารถตรวจสอบโดยการหา PID ของและการทำless มองหาตัวแปรสภาพแวดล้อมhd /proc/<pid>/environ LESSมันจะอยู่ที่นั่น แต่ว่างเปล่า (โดยปกติจะเป็นFRSXMK) คุณสามารถพิมพ์_Kตัวเองน้อยลงเพื่อดูว่ามีการตั้งค่าสถานะนั้นหรือไม่ โดยปกติมันเป็น ถ้าคุณผ่านSYSTEMD_LESS=มันไม่ได้ ฉันคิดว่ากระบวนการ journalctl คือการส่งสัญญาณวิทยุติดตามตัวเมื่อมันได้รับSIGINTซึ่งเป็นเหตุผลที่lessตายโดยไม่คำนึงถึงการตั้งค่าที่

ต่อไปนี้เป็นแนวคิดการแฮ็ก

0

ฉันเพิ่งเจอกับเหตุการณ์ที่น่ารำคาญนี้
การตั้งค่าSYSTEMD_LESSไม่ทำงานเนื่องจาก journalctl จะส่ง a SIGTERMไปยังเพจเจอร์เมื่อได้รับ ^ C

"ทางออก" ของฉันคือใช้นามแฝงทุบตีเช่นนี้

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

สิ่งนี้จะแทนที่เพจเจอร์เริ่มต้นและจะไม่ออกเมื่อคุณขัดจังหวะการติดตาม
ตัวแปรสภาพแวดล้อมน่าจะเป็นวิธีเดียวที่จะมีสีและให้น้อยทำงานหลังจากที่SYSTEMD_COLORSSIGINT

สิ่งนี้ใช้ได้กับการติดตั้ง Debian 9 ของฉัน


อืมสิ่งนี้หยุดติดตาม แต่อย่างนั้นjournalctl | lessอาจเป็นบั๊ก
clst
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.