Tạp chí - dừng theo dõi mà không thoát khỏi máy nhắn tin


10

Nếu tôi làm:

journalctl -u my-service

Sau đó a Shift-Fđể theo trong khi phân trang, làm thế nào để tôi (interrupt to abort)không thoát khỏi máy nhắn tin?

Với less, tôi thường chỉ ^C, nhưng nếu tôi làm điều đó trong tạp chí, nó sẽ thoát toàn bộ máy nhắn tin.

Câu trả lời:


6

Bạn đang sử dụng lesstại thời điểm đó, nhưng ^ C đang hành xử khác đi do cách nó được gọi bởi journalctl. Các cờ mà tạp chí thông qua để lessbao gồm các mặc định sau:

 FRSXMK

Trong số này, tôi nghĩ tùy chọn "K" áp dụng ở đây:

-K hoặc - muỗi xâm nhập Nguyên nhân ít thoát ra ngay lập tức (với trạng thái 2) khi một ký tự ngắt (thường là ^ C) được gõ. Thông thường, một ký tự ngắt làm cho ít dừng mọi thứ nó đang làm và quay lại dấu nhắc lệnh của nó. Lưu ý rằng việc sử dụng tùy chọn này làm cho không thể quay lại dấu nhắc lệnh từ lệnh "F".

Vì vậy, việc đặt $ SYSTEMD_LESS trong môi trường của bạn và bỏ qua tùy chọn "K" sẽ giải quyết được vấn đề, nó không hoạt động trong thử nghiệm của tôi trên Ubuntu 16.04:

 SYSTEMD_LESS="FRSXM"journalctl -u nginx

Tuy nhiên, bạn có thể có hành vi bạn muốn xác nhận rằng cờ K có liên quan bằng cách so sánh hành vi của các biến thể sau:

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

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

Tôi có cùng một cài đặt vấn đề SYSTEMD_LESS, nhưng tôi xác nhận điều này không thay đổi các cờ được gửi đến less. Bạn có thể kiểm tra bằng cách tìm ra PID lessvà thực hiện hd /proc/<pid>/environ. Hãy tìm biến môi trường LESS. Nó sẽ ở đó nhưng trống rỗng (thông thường là vậy FRSXMK). Bạn cũng có thể nhập _Kít hơn để xem cờ đó có được đặt hay không. Thông thường nó là. Nếu bạn vượt qua SYSTEMD_LESS=thì không. Tôi nghĩ rằng quá trình tạp chí đang báo hiệu máy nhắn tin khi nó nhận được SIGINT, đó là lý do tại sao lesschết bất kể thiết lập đó.

Đây là một bằng chứng khái niệm hacky cho thấy cách bạn có thể giải quyết vấn đề này: gist.github.com/chriskuehl/9ab4c74c19f2f4cb883744171335ac44

0

Tôi cũng vừa trải qua điều khó chịu này.
Cài đặt SYSTEMD_LESSthực sự không hoạt động vì tạp chí sẽ gửi một SIGTERMmáy nhắn tin khi nhận được ^ C.

"Giải pháp" của tôi là sử dụng bí danh bash như thế này:

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

Điều này sẽ ghi đè máy nhắn tin mặc định và không thoát khi bạn ngắt theo dõi.
Biến môi trường SYSTEMD_COLORSdường như là cách duy nhất để có màu sắc và tiếp tục chạy ít hơn sau a SIGINT.

Điều này hoạt động trên cài đặt Debian 9 của tôi.


Hmm, điều này đã dừng lại sau. Nhưng như vậy journalctl | less, có thể là một lỗi.
clst
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.