このデータをファイルに記録する方法はないようです。ブートプロセスにbootlogd
は、ファイルを作成するパッケージがあります/var/log/boot
が、シャットダウン/リブートプロセスには何もありません。私が見る限り、rsyslog
どちらでもログを記録する方法はなく、たとえあったとしても、rsyslog
停止後にメッセージが出力されます。私のシャットダウン/リブートプロセスの一部は、rootfsを読み取り専用で再マウントし、他のすべてをアンマウントすることです。このログは、次回のブート時にまだ存在するファイルに実質的に不可能です。
メッセージを表示する最も簡単な方法は、実際の/の直前で一時停止するように/etc/init.d/halt
and / or /etc/init.d/reboot
スクリプトを編集することです。以下のためのスクリプト、コマンドを実行します(またはGUIエディタを使用)と実際の停止を行う行を探します。私にとってこれは行です:halt
reboot
halt
sudoedit /etc/init.d/halt
halt -d -f $netdown $poweroff $hddown
それ以外の場合は、do_stop
関数の最後で、halt
コマンドを呼び出す唯一の行である必要があります。行が見つかったら、次の行を新しい行に挿入します。
read -p "Press enter to halt" reply
ファイルを保存して終了します。シャットダウンすると、システムはEnterキー(またはCTRL-C、CTRL-Dなど)を押すまで一時停止します。画面に印刷されたメッセージを読むことができます。1画面分のテキストが複数ある場合は、を押してターミナルスクロールバックを表示できますShift+PgUp
。それでも十分でない場合は、スクロールバックバッファーのサイズを大きくする方法があります(ただし、別の質問かもしれません)。
システムの再起動時に同じことを行うには、/etc/init.d/reboot
ファイルを編集する必要があります。もちろんreboot
、ここで使用するコマンドhalt
は、do_stop
関数の最後とは反対であり、関数の最後になければなりません。私にとっての行は次のとおりです。
reboot -d -f -i
再度、上記の新しい行に次を挿入します。
read -p "Press enter to reboot" reply
これらのファイルは、initscripts
パッケージのconffilesとしてリストされていることにも注意してください。これらの編集は、パッケージのアップグレード時にデフォルトで上書きされませんが、競合が発生します。
より完全な解決策は、次のスクリプトを使用することです。
#! /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
/etc/init.d/pause_hook
次のコマンドを使用して、これを配置し、シャットダウン/再起動時に実行できるようにする必要があります。
sudo update-rc.d pause_hook defaults
実際のフックを有効にするには/etc/pause_hook.conf
、次の行を含むファイルを作成します。
PAUSE_HOOK_ENABLED=true
シャットダウン/リブートプロセスは、halt
or reboot
スクリプトが呼び出される直前に一時停止し、メッセージを表示する時間を与えます。の有効化行をコメント化/コメント解除することで、簡単に無効化/再有効化することもできます/etc/pause_hook.conf
。また、dpkg
この方法でアップグレード中にconffileの競合は発生しません。