Parece que no hay forma de registrar estos datos en un archivo. Para el proceso de arranque, existe el bootlogd
paquete que crea el archivo /var/log/boot
, pero nada para el proceso de apagado / reinicio. Por lo que puedo ver, tampoco hay forma de iniciar sesión rsyslog
, e incluso si lo hubiera, hay mensajes impresos después de que rsyslog
se detiene. Parte de mi proceso de apagado / reinicio es volver a montar los rootfs de solo lectura y desmontar todo lo demás, después de que iniciar sesión en un archivo que todavía estará allí en el próximo arranque es prácticamente imposible.
La forma más sencilla que puedo ver para ver los mensajes es editar los /etc/init.d/halt
y / o /etc/init.d/reboot
secuencias de comandos para hacer una pausa justo antes de la real halt
/ reboot
. Para el halt
script, ejecute el comando sudoedit /etc/init.d/halt
(o use un editor de GUI) y busque la línea que detiene realmente. Para mí esta es la línea:
halt -d -f $netdown $poweroff $hddown
De lo contrario, debe estar al final de la do_stop
función y la única línea que llama al halt
comando. Una vez que encuentre la línea, simplemente inserte una nueva línea arriba con lo siguiente:
read -p "Press enter to halt" reply
Guarda el archivo y cierra. Ahora, cuando cierre, el sistema se detendrá hasta que presione Intro (o CTRL-C, CTRL-D, etc.). Puede leer los mensajes impresos en la pantalla. Si hay más de una pantalla llena de texto, puede ver el desplazamiento hacia atrás del terminal presionando Shift+PgUp
. Si esto todavía no es suficiente, hay formas de aumentar el tamaño del búfer de desplazamiento (aunque quizás sea una pregunta diferente).
Para hacer lo mismo cuando se reinicia el sistema, debe editar el /etc/init.d/reboot
archivo. El comando utilizado aquí es, por supuesto reboot
, opuesto halt
y debería estar nuevamente al final de la do_stop
función. Para mí la línea es:
reboot -d -f -i
Nuevamente solo inserte lo siguiente en una nueva línea arriba:
read -p "Press enter to reboot" reply
Tenga en cuenta también que estos archivos están listados como conffiles para el initscripts
paquete. Estas ediciones no se bloquearán de forma predeterminada cuando se actualicen los paquetes, aunque causarán un conflicto.
Una solución más completa sería utilizar el siguiente 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
Esto debe colocarse /etc/init.d/pause_hook
y puede habilitarse para ejecutarse al apagar / reiniciar con el siguiente comando:
sudo update-rc.d pause_hook defaults
Para habilitar el enlace real, cree los archivos que /etc/pause_hook.conf
contienen la línea:
PAUSE_HOOK_ENABLED=true
El proceso de apagado / reinicio ahora debería detenerse justo antes de que se llame al script halt
o reboot
, dando tiempo para ver los mensajes. También se puede deshabilitar / volver a habilitar fácilmente comentando / descomentando la línea de habilitación /etc/pause_hook.conf
. Tampoco habrá dpkg
conflictos de conflicto durante las actualizaciones de esta manera.