Parece não haver maneira de registrar esses dados em um arquivo. Para o processo de inicialização, existe o bootlogd
pacote que cria o arquivo /var/log/boot
, mas nada para o processo de desligamento / reinicialização. Tanto quanto posso ver, também não há como fazer logon rsyslog
, e mesmo que houvesse, há mensagens impressas após a rsyslog
interrupção. Parte do meu processo de desligamento / reinicialização é remontar os rootfs somente leitura e montar todo o resto, depois que esse registro em um arquivo que ainda estará lá na próxima inicialização é praticamente impossível.
A maneira mais fácil de ver as mensagens é editar os scripts /etc/init.d/halt
e / ou /etc/init.d/reboot
pausar antes do halt
/ real reboot
. Para o halt
script, execute o comando sudoedit /etc/init.d/halt
(ou use um editor de GUI) e procure a linha que faz a parada real. Para mim, esta é a linha:
halt -d -f $netdown $poweroff $hddown
Caso contrário, deve estar no final da do_stop
função e a única linha que chama o halt
comando. Depois de encontrar a linha, basta inserir uma nova linha acima com o seguinte:
read -p "Press enter to halt" reply
Salve o arquivo e saia. Agora, quando você desligar, o sistema fará uma pausa até você pressionar enter (ou CTRL-C, CTRL-D, etc). Você pode ler as mensagens impressas na tela. Se houver mais de uma única tela de texto, você poderá ver a rolagem do terminal pressionando Shift+PgUp
. Se isso ainda não for suficiente, existem maneiras de aumentar o tamanho do buffer de rolagem (talvez uma pergunta diferente).
Para fazer o mesmo quando o sistema reiniciar, você precisará editar o /etc/init.d/reboot
arquivo. O comando usado aqui é obviamente reboot
oposto halt
e deve estar novamente no final da do_stop
função. Para mim, a linha é:
reboot -d -f -i
Novamente, basta inserir o seguinte em uma nova linha acima:
read -p "Press enter to reboot" reply
Observe também que esses arquivos estão listados como arquivos de configuração do initscripts
pacote. Essas edições não serão derrotadas por padrão quando os pacotes forem atualizados, embora causem um conflito.
Uma solução mais completa seria usar o seguinte script:
#! /bin/sh
### BEGIN INIT INFO
# Provides: pause_hook
# Required-Start:
# Required-Stop: halt reboot
# Default-Start:
# Default-Stop: 0 6
# X-Stop-After: umountroot
# X-Interactive: true
# Short-Description: Pause before halt or reboot
# Description:
### END INIT INFO
do_stop () {
[ -r /etc/pause_hook.conf ] && . /etc/pause_hook.conf
[ "$PAUSE_HOOK_ENABLED" = true ] && read -p "Press enter to continue" reply
}
case "$1" in
start)
# No-op
;;
restart|reload|force-reload)
echo "Error: argument '$1' not supported" >&2
exit 3
;;
stop)
do_stop
;;
*)
echo "Usage: $0 start|stop" >&2
exit 3
;;
esac
Isso deve ser colocado /etc/init.d/pause_hook
e pode ser ativado para ser executado no encerramento / reinicialização com o seguinte comando:
sudo update-rc.d pause_hook defaults
Para ativar o gancho real, crie os arquivos que /etc/pause_hook.conf
contêm a linha:
PAUSE_HOOK_ENABLED=true
O processo de desligamento / reinicialização agora deve pausar antes da chamada do script halt
ou reboot
, dando tempo para exibir as mensagens. Também pode ser facilmente desativado / reativado comentando / descomentando a linha de ativação /etc/pause_hook.conf
. Também não haverá dpkg
conflitos de conffile durante as atualizações dessa maneira.