Bạn đang sử dụng less
tạ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 để less
bao 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
SYSTEMD_LESS
, nhưng tôi xác nhận điều này không thay đổi các cờ được gửi đếnless
. Bạn có thể kiểm tra bằng cách tìm ra PIDless
và thực hiệnhd /proc/<pid>/environ
. Hãy tìm biến môi trườngLESS
. Nó sẽ ở đó nhưng trống rỗng (thông thường là vậyFRSXMK
). 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 quaSYSTEMD_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 đượcSIGINT
, đó là lý do tại saoless
chết bất kể thiết lập đó.