Como logar o Systemd Watchdog reinicia

0

Eu tenho o systemd sendo executado com um watchdog e um serviço que usa um watchdog do systemd para reiniciar o serviço quando ele é bloqueado. Se o serviço travar repetidamente, o systemd reinicializará a máquina.

Como posso registrar quando o systemd reinicia o serviço e quando a máquina é reinicializada pelo systemd?

O SO é o ARCH linux e a versão do systemd é 218.

O Jounrnalctl está vazio para esse dia após a reinicialização do watchdog.

Eu não sei o que o diário contém se apenas o serviço for reiniciado. Qual é a maneira mais eficaz de testar um serviço pendurado?

/ var / log / journal existe e armazenará informações em uma reinicialização normal, mas não possui logs para o dia em uma reinicialização do watchdog.

Lendo Depurando o bloqueio - systemd perde meu logs , que parece ser um problema semelhante. Uncommenting # SyncIntervalSec = 5m no meu journald.conf me fornece os logs da reinicialização, mas nenhuma pista sobre o que o aciona.

Neste caso, foi uma forkbomb causando systemd para reiniciar a máquina inteira.

Apr 11 20:54:02 buspi systemd[1]: Stopping Sound Card.   <--- restarting
Apr 11 20:54:01 buspi anacron[17809]: Job 'cron.daily' started <--- seems ok

Arquivo de unidade

[Unit]
Description= Alight
Wants=network.target

[Service]
Type=notify
ExecStart=/usr/bin/alight 
ExecStop=/usr/bin/alight-stop
Restart=always
WatchdogSec=30s
StartLimitInterval=5min
StartLimitBurst=4
StartLimitAction=reboot-force

[Install]
WantedBy=multi-user.target

system.conf

[Manager]
#LogLevel=info
#LogTarget=journal-or-kmsg
#LogColor=yes
#LogLocation=no
#DumpCore=yes
#CrashShell=no
#ShowStatus=yes
#CrashChVT=1
#CPUAffinity=1 2
#JoinControllers=cpu,cpuacct net_cls,net_prio
RuntimeWatchdogSec=20
ShutdownWatchdogSec=3min
#CapabilityBoundingSet=
#SystemCallArchitectures=
#TimerSlackNSec=
#DefaultTimerAccuracySec=1min
#DefaultStandardOutput=journal
#DefaultStandardError=inherit
#DefaultTimeoutStartSec=90s
#DefaultTimeoutStopSec=90s
#DefaultRestartSec=100ms
#DefaultStartLimitInterval=10s
#DefaultStartLimitBurst=5
#DefaultEnvironment=
#DefaultCPUAccounting=no
#DefaultBlockIOAccounting=no
#DefaultMemoryAccounting=no
#DefaultLimitCPU=
#DefaultLimitFSIZE=
#DefaultLimitDATA=
#DefaultLimitSTACK=
#DefaultLimitCORE=
#DefaultLimitRSS=
#DefaultLimitNOFILE=
#DefaultLimitAS=
#DefaultLimitNPROC=
#DefaultLimitMEMLOCK=
#DefaultLimitLOCKS=
#DefaultLimitSIGPENDING=
#DefaultLimitMSGQUEUE=
#DefaultLimitNICE=
#DefaultLimitRTPRIO=
#DefaultLimitRTTIME=
    
por Robert Pringle 26.08.2016 / 16:01

1 resposta

1

Se /var/log/journal não existir, por padrão, o systemd journal será armazenado na memória e, portanto, perdido na reinicialização.

Revise os documentos oficiais do diário do systemd , particularmente a lista de arquivos de configuração em o topo que você pode querer revisar e a opção Storage = .

Pode ser que a criação de log esteja acontecendo, mas esteja sendo perdida durante a reinicialização antes que você possa revisar devido à configuração Storage= do diário do systemd.

    
por 29.08.2016 / 21:05