O contador já foi adicionado e pode ser acessado com o seguinte comando:
systemctl show foo.service -p NRestarts
Ele retornará um valor se o serviço estiver em um loop de reinicialização, caso contrário, não retornará nada.
Eu quero uma maneira rápida e fácil de saber quantas vezes um serviço gerenciado pelo systemd foi reiniciado (por exemplo, como um contador). Isso existe?
O contador já foi adicionado e pode ser acessado com o seguinte comando:
systemctl show foo.service -p NRestarts
Ele retornará um valor se o serviço estiver em um loop de reinicialização, caso contrário, não retornará nada.
systemctl mostra o último horário de início (ou tempo de atividade) do serviço. Mas isso não é suficiente para dizer quantas vezes o serviço foi reiniciado.
O comando a seguir provavelmente mostra o número de ocorrências iniciais (ou de reinicialização):
journalctl -u <service_name>
.service | grep Starting
Por exemplo:
$ 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...
E este comando apenas fornece uma contagem do número de reinicializações:
journalctl -u <service_name>
.service | grep Iniciando | wc -l
Por exemplo:
$ journalctl -u foo.service | grep Starting | wc -l
2
Nota: você pode variar a string que você usa aqui. Você poderia usar este 'Started' para dizer se o serviço foi iniciado com sucesso. Ou você poderia usar ' <service_name>
.service failed' para informar o número de ocorrências que o serviço falhou.
Além disso, é interessante notar que eles estão discutindo a ideia de adicionar um contador ao systemd no GitHub:
Tags systemd