systemctl/journal은 서비스가 다시 시작되었는지, 중지 및 시작되었는지 구별합니다.

systemctl/journal은 서비스가 다시 시작되었는지, 중지 및 시작되었는지 구별합니다.

서비스가 다시 시작되었는지 확인할 수 있는 방법이 있나요? systemctl restart myunit.service또는 을 실행할 때 systemctl --user restart myunit.service로그에는 내 장치가 중지되었다가 다시 시작되었다는 내용만 표시됩니다. 서비스가 제공되는 시점을 캡처해야 합니다.재시작멈추지 않고 다시 시작되었습니다.

또한 중지와 다시 시작 사이의 시간을 해결책으로 사용할 수 없습니다. 서비스가 즉시 중지되지 않는 경우도 있습니다. kill -9서비스 시간이 10초 이상 소요되면 서비스 단위에 시간 초과 설정이 내장됩니다.

사용자가 그런 다음 수행한 restart것이 아니라 신속하게 수행했는지 확인하는 방법이 필요합니다 stop.start

어떻게 해야 하나요?

답변1

journalctl -o verboseJOB_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. 장치를 수동으로 stopping하고 ping하면 starts가 다른 stop항목 만 생성됩니다.startJOB_ID

관련 정보