journalctl-호출기를 종료하지 않고 팔로우 중지 Shift-F페이징 동안, 어떻게 할

만약 내가한다면:

journalctl -u my-service

다음은 Shift-F페이징 동안, 어떻게 할 따라야 할 (interrupt to abort)호출기를 종료하지 않고?

을 사용하면 less일반적으로 그냥 ^C이지만 journalctl에서 그렇게하면 전체 호출기를 종료합니다.



답변

당신은 된다 사용하여 less그 시점에서,하지만 ^ C로 인해이 호출 된 방법으로 다르게 행동한다 journalctl. journalctl이 전달하는 플래그 less는 다음 기본값 을 포함합니다.

 FRSXMK

이 중 “K”옵션이 여기에 적용된다고 생각합니다.

-K 또는 –quit-on-intr
인터럽트 문자 (보통 ^ C)를 입력 할 때 즉시 상태 2가 종료되도록합니다. 일반적으로 인터럽트 문자는 수행중인 작업을 중지하고 명령 프롬프트로 돌아갑니다. 이 옵션을 사용하면 “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


답변

나는 또한이 성가신 단점을 경험했다. ^ ct를 받을 때 journalctl이 호출기에 a 를 보내므로 실제로
설정 SYSTEMD_LESS이 작동하지 않습니다 SIGTERM.

내 “솔루션”은 다음과 같은 bash 별칭을 사용하는 것입니다.

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

기본 호출기를 무시하고 추적을 중단해도 종료되지 않습니다.
환경 변수 SYSTEMD_COLORS는 색상을 유지하고 SIGINT.

이것은 데비안 9 설치에서 작동합니다.


답변