O systemd pode mostrar quantas vezes um serviço foi reiniciado?

5

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?

    
por jersey bean 25.07.2017 / 21:03

2 respostas

2

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.

link

    
por 08.11.2017 / 00:18
5

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:

link

    
por 25.07.2017 / 21:07

Tags