Como saber exatamente quando um serviço Linux ficou inativo?

2

Estou usando o RHEL 7 e gostaria de saber se e quando um serviço específico 'myservice.service' ficou inativo. Infelizmente, usando:

journalctl -u myservice.service

só parece mostrar a saída do meu serviço real, mas em algum momento, a saída parou e não sei se isso é devido a:

  1. o serviço está sendo encerrado ou
  2. systemd ainda considerando o serviço como ativo, mas o próprio processo em si não estava mais gerando saída devido a um problema com o código subjacente

Existe alguma maneira de obter basicamente um log de eventos de status do systemctl?

    
por user241654 20.07.2017 / 16:00

2 respostas

0

Você pode verificar informações nos registros do sistema.

no redhat:

/var/log/messages 

em distribuições baseadas no debian:

/var/log/syslog

Você também deve procurar os registros de seu serviço específico, pode ser algo como

/var/log/<yourservice>.log

Todos esses log são rotacionados para que você possa encontrar informações antigas dentro do .log.1 ans.log.x.gz (você tem que gunzip aqueles, ou usar zless ou vi)

Boa pesquisa

    
por 20.07.2017 / 16:44
0

How to know exactly when a Linux service went inactive?

O systemd não aparece para registrar quando um serviço sai com o status 0 e vai para "inativo (inativo)" - isso difere das transições quando ele falha, inicia ou para: (.

No Fedora 26, recebo mensagens como systemd [1]: Iniciado servidor OpenBSD Secure Shell. systemd [1]: Parou o servidor do SecureBSD SecureBSD.

systemd não loga necessariamente quando o sshd sai com status de saída 0 ... que é o que o ssh e outros daemons como o apache tendem a fazer para SIGTERM :(. SIGKILL aparece em journalctl -u: systemd [1]: ssh. serviço: processo principal encerrado, código = morto, status = 9 / KILL.

No RHEL (como o Fedora), você provavelmente tem a auditoria ativada. Isso fez o trabalho para mim

# journalctl --boot=-1 SYSLOG_IDENTIFIER=audit
...
Dec 30 13:51:38 localhost.localdomain audit[1]: SERVICE_START pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=fprintd comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
...
Dec 30 13:52:08 localhost.localdomain audit[1]: SERVICE_STOP pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=fprintd comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'

fprintd é um exemplo de um daemon que sai limpo após um período inativo, que é registrado apenas como uma mensagem de auditoria.

    
por 20.07.2017 / 18:06