Como posso encontrar serviços systemd com falha?

2

Quando executo systemd status em um servidor específico, recebo a seguinte saída:

● ⟨host-name⟩
    State: degraded
     Jobs: 0 queued
   Failed: 1 units
    Since: Fr 2017-06-09 00:34:27 UTC; 1 weeks 5 days ago
   CGroup: /
…

Como posso descobrir qual dos serviços é aquele que falhou?

Eu tentei com systemctl is-failed '*' , mas isso não produz nenhum resultado significativo (ele gera 39 linhas active um failed linha e então um pouco mais (> 100) active linhas…). / p>     

por Patrick J. S. 21.06.2017 / 19:30

1 resposta

1

Parece que is-failed é o subcomando errado ... quem teria imaginado.

aqui está alguma hacker de perl para obter a resposta certa:

$ systemctl list-units | perl -lanE'print if $F[2] !~ /active/'
  UNIT    LOAD   ACTIVE SUB       DESCRIPTION
● vboxautostart-service.service                                                             loaded failed failed    vboxautostart-service.service

LOAD   = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB    = The low-level unit activation state, values depend on unit type.

207 loaded units listed. Pass --all to see loaded but inactive units, too.
To show all installed unit files use 'systemctl list-unit-files'.

E systemctl também é bom para desordenar o stderr com saída informativa de uma maneira que nós só obtemos a saída que queremos.

    
por 21.06.2017 / 19:38

Tags