systemd에서 서비스 재시작 횟수를 표시할 수 있나요?

systemd에서 서비스 재시작 횟수를 표시할 수 있나요?

systemd에서 관리하는 서비스가 다시 시작된 횟수(예: 카운터 등)를 빠르고 쉽게 알 수 있는 방법을 원합니다. 그게 존재하나요?

답변1

이 카운터는 추가되었으며 다음 명령을 사용하여 액세스할 수 있습니다.

systemctl show foo.service -p NRestarts

서비스가 다시 시작 루프에 있으면 값을 반환하고, 그렇지 않으면 아무 것도 반환하지 않습니다.

https://github.com/systemd/systemd/pull/6495

답변2

systemctl은 서비스가 마지막으로 시작된 시간(또는 가동 시간)을 표시합니다. 그러나 이는 서비스가 다시 시작된 횟수를 설명하기에는 충분하지 않습니다.

다음 명령은 발생한 시작(또는 재부팅) 횟수를 표시할 수 있습니다.

로그 제어 -u <service_name>.service grep 시작 |

예를 들어:

$ journalctl -u foo.service | grep Starting
Jul 24 16:09:56 10.16.26.1 systemd[1]: Starting foo...
Jul 25 18:12:14 10.16.26.1 systemd[1]: Starting foo...

이 명령은 재시작 횟수만 제공합니다.

로그 제어 -u <service_name>.service grep start |

예를 들어:

$ journalctl -u foo.service | grep Starting | wc -l 
2

참고: 여기에서 사용된 문자열을 변경할 수 있습니다. 이 "시작됨"을 사용하여 서비스가 성공적으로 시작되었는지 확인할 수 있습니다. 또는 " <service_name>.service failed"를 사용하여 서비스가 실패한 횟수를 알 수 있습니다.

또한 흥미롭게도 그들은 GitHub에서 systemd에 카운터를 추가하는 아이디어를 논의해 왔습니다.

https://github.com/systemd/systemd/issues/4126

관련 정보