![systemctl/journal은 서비스가 다시 시작되었는지, 중지 및 시작되었는지 구별합니다.](https://linux55.com/image/203508/systemctl%2Fjournal%EC%9D%80%20%EC%84%9C%EB%B9%84%EC%8A%A4%EA%B0%80%20%EB%8B%A4%EC%8B%9C%20%EC%8B%9C%EC%9E%91%EB%90%98%EC%97%88%EB%8A%94%EC%A7%80%2C%20%EC%A4%91%EC%A7%80%20%EB%B0%8F%20%EC%8B%9C%EC%9E%91%EB%90%98%EC%97%88%EB%8A%94%EC%A7%80%20%EA%B5%AC%EB%B3%84%ED%95%A9%EB%8B%88%EB%8B%A4..png)
서비스가 다시 시작되었는지 확인할 수 있는 방법이 있나요? systemctl restart myunit.service
또는 을 실행할 때 systemctl --user restart myunit.service
로그에는 내 장치가 중지되었다가 다시 시작되었다는 내용만 표시됩니다. 서비스가 제공되는 시점을 캡처해야 합니다.재시작멈추지 않고 다시 시작되었습니다.
또한 중지와 다시 시작 사이의 시간을 해결책으로 사용할 수 없습니다. 서비스가 즉시 중지되지 않는 경우도 있습니다. kill -9
서비스 시간이 10초 이상 소요되면 서비스 단위에 시간 초과 설정이 내장됩니다.
사용자가 그런 다음 수행한 restart
것이 아니라 신속하게 수행했는지 확인하는 방법이 필요합니다 stop
.start
어떻게 해야 하나요?
답변1
journalctl -o verbose
JOB_TYPE
로 설정된 필드가 포함됩니다 restart
. systemd 문서에서 이 필드를 찾을 수 없지만https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/managing_systems_using_the_rhel_8_web_console/reviewing-logs_system-management-using-the-rhel-8-web-console그것을 언급했다:
2020년 10월 22일 자정 이후 발생한 "systemd"로 식별된 모든 로그 메시지를 필터링하고 로그 필드 "JOB_TYPE"이 "start" 또는 "restart"입니다.
journalctl -u irqbalance -o verbose
다음 이후의 샘플 항목 systemctl restart irqbalance
:
JOB_TYPE=stop
JOB_ID=3667
INVOCATION_ID=14f864c9297247f286c8e7e07a09c40e
UNIT=irqbalance.service
MESSAGE=Stopping irqbalance daemon...
Mon 2022-03-14 20:26:45.263497 CET [...]
UNIT=irqbalance.service
JOB_TYPE=restart
JOB_ID=3667
MESSAGE=Stopped irqbalance daemon.
Mon 2022-03-14 20:26:45.264912 CET [...]
JOB_TYPE=start
JOB_RESULT=done
UNIT=irqbalance.service
JOB_ID=3667
위에서 언급했듯이 이는 문서화되지 않은 것으로 보이지만 장치를 다시 시작하면 동일한 태그가 있는 항목이 모두 생성됩니다 JOB_ID
. 장치를 수동으로 stop
ping하고 ping하면 start
s가 다른 stop
항목 만 생성됩니다.start
JOB_ID