Existem algumas coisas para verificar:
Verifique a saída do último comando -x
Execute este comando * e compare a saída com os exemplos abaixo:
last -x | head | tac
Exemplos normais de desligamento
Um desligamento normal e ativação aparecem assim (observe que você tem um evento de desligamento e, em seguida, um evento de inicialização do sistema):
runlevel (to lvl 0) 2.6.32- Sat Mar 17 08:48 - 08:51 (00:02)
shutdown system down ... <-- first the system shuts down
reboot system boot ... <-- afterwards the system boots
runlevel (to lvl 3)
Em alguns casos, você pode ver isso (note que não há nenhuma linha sobre o desligamento, mas o sistema estava no nível de execução 0, que é o "estado de parada"):
runlevel (to lvl 0) ... <-- first the system shuts down (init level 0)
reboot system boot ... <-- afterwards the system boots
runlevel (to lvl 2) 2.6.24-... Fri Aug 10 15:58 - 15:32 (2+23:34)
Exemplos de desligamentos inesperados
Um desligamento inesperado da perda de energia é assim (observe que você tem um evento de inicialização do sistema sem um evento anterior de desligamento do sistema):
runlevel (to lvl 3) ... <-- the system was running since this momemnt
reboot system boot ... <-- then we've a boot WITHOUT a prior shutdown
runlevel (to lvl 3) 3.10.0-693.21.1. Sun Jun 17 15:40 - 09:51 (18:11)
Examine os logs em / var / log
Um comando bash para filtrar as mensagens de log mais interessantes é o seguinte:
grep -iv ': starting\|kernel: .*: Power Button\|watching system buttons\|Stopped Cleaning Up\|Started Crash recovery kernel' \
/var/log/messages /var/log/syslog /var/log/apcupsd* \
| grep -iw 'recover[a-z]*\|power[a-z]*\|shut[a-z ]*down\|rsyslogd\|ups'
Quando ocorre um desligamento inesperado ou uma falha de hardware, os sistemas de arquivos não serão devidamente desmontados. Assim, na próxima inicialização, você pode obter logs como este:
EXT4-fs ... INFO: recovery required ...
Starting XFS recovery filesystem ...
systemd-fsck: ... recovering journal
systemd-journald: File /var/log/journal/.../system.journal corrupted or uncleanly shut down, renaming and replacing.
Quando o sistema é desligado porque o usuário pressionou o botão liga / desliga, você obtém registros como este:
systemd-logind: Power key pressed.
systemd-logind: Powering Off...
systemd-logind: System is powering down.
Somente quando o sistema é desligado, você obtém registros como este:
rsyslogd: ... exiting on signal 15
Quando o sistema é desligado devido ao superaquecimento, você recebe logs como este:
critical temperature reached...,shutting down
Se você tem um no-break e executa um daemon para monitorar a energia e o desligamento, obviamente deve verificar seus logs (o NUT registra em / var / log / messages mas o apcupsd registra em / var / log / apcupsd *)
Notas
*: Aqui está a descrição de last
da sua página de manual:
last [...] prints information about connect times of users.
Records are printed from most recent to least recent.
[...]
The special users reboot and shutdown log in when the system reboots
or (surprise) shuts down.
Usamos head
para manter os últimos 10 eventos e usamos tac
para inverter a ordenação, para que não nos confundamos com o fato de as últimas impressões do evento mais recente para o mais recente.