systemctl status
não fornece informações avançadas sobre o serviço em execução.
Se você estiver procurando maneiras de notificar o systemd sobre alterações de status em seu serviço, sd_notify
pode ser útil. Isso depende da capacidade de seus serviços para o autodiagnóstico. Se o seu serviço usa sd_notify, you can configure the service with
WatchdogSec '. Para citar da documentação :
Configures the watchdog timeout for a service. The watchdog is activated when the start-up is completed. The service must call sd_notify(3) regularly with "WATCHDOG=1" (i.e. the "keep-alive ping"). If the time between two such calls is larger than the configured time, then the service is placed in a failed state and it will be terminated with SIGABRT.
No entanto, usando systemctl show
, você pode recuperar algumas informações adicionais legíveis por máquina no serviço, o que pode ajudá-lo a decidir se o serviço está correto.
Caso você esteja procurando por systemd
para saber se seu serviço é executado em um loop infinito, provavelmente você está sem sorte. Esse problema está intimamente relacionado com o problema de parada , para o qual está provado que não existe um algoritmo geral para resolver o problema.
Embora seu problema específico possa ser solucionado, é provável que pelo menos um enorme desperdício de recursos. Consulte esta questão relacionada .