Es scheint keine Möglichkeit zu geben, diese Daten in einer Datei zu protokollieren. Für den Boot-Vorgang gibt es das bootlogd
Paket, das die Datei erstellt /var/log/boot
, aber nichts für den Shutdown- / Neustart-Vorgang. Soweit ich sehen kann, gibt es auch keine Möglichkeit, sich anzumelden rsyslog
, und selbst wenn vorhanden, werden Meldungen gedruckt, nachdem sie rsyslog
gestoppt wurden. Ein Teil meines Herunterfahrens / Neustarts besteht darin, die rootfs wieder einzubinden und alles andere wieder einzubinden, nachdem diese Protokollierung in eine Datei, die beim nächsten Start noch vorhanden ist, praktisch unmöglich ist.
Die einfachste Möglichkeit, die Nachrichten anzuzeigen, besteht darin, die Skripte zu bearbeiten /etc/init.d/halt
und / oder /etc/init.d/reboot
vor dem eigentlichen halt
/ anzuhalten reboot
. halt
Führen Sie für das Skript den Befehl aus sudoedit /etc/init.d/halt
(oder verwenden Sie einen GUI-Editor) und suchen Sie nach der Zeile, die den eigentlichen Halt ausführt. Für mich ist das die Linie:
halt -d -f $netdown $poweroff $hddown
Andernfalls sollte es am Ende der do_stop
Funktion stehen und die einzige Zeile sein, die den halt
Befehl aufruft . Sobald Sie die Zeile gefunden haben, fügen Sie einfach eine neue Zeile ein:
read -p "Press enter to halt" reply
Speichern Sie die Datei und beenden Sie sie. Wenn Sie jetzt herunterfahren, wird das System angehalten, bis Sie die Eingabetaste (oder STRG-C, STRG-D usw.) drücken. Sie können die auf dem Bildschirm gedruckten Nachrichten lesen. Wenn mehr als ein Bildschirm mit Text vorhanden ist, können Sie das Zurückblättern des Terminals durch Drücken von anzeigen Shift+PgUp
. Wenn dies immer noch nicht ausreicht, gibt es Möglichkeiten, den Scrollback-Puffer zu vergrößern (möglicherweise jedoch eine andere Frage).
Um dasselbe beim Neustart des Systems zu tun, müssen Sie die /etc/init.d/reboot
Datei bearbeiten . Der hier verwendete Befehl steht natürlich reboot
im Gegensatz zu halt
und sollte wieder am Ende der do_stop
Funktion stehen. Für mich ist die Linie:
reboot -d -f -i
Fügen Sie einfach folgendes in eine neue Zeile ein:
read -p "Press enter to reboot" reply
Beachten Sie auch, dass diese Dateien als Conffiles für das initscripts
Paket aufgelistet sind . Diese Änderungen werden nicht standardmäßig blockiert, wenn die Pakete aktualisiert werden, obwohl sie einen Konflikt verursachen.
Eine vollständigere Lösung wäre die Verwendung des folgenden Skripts:
#! /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
Dies sollte in platziert werden /etc/init.d/pause_hook
und kann aktiviert werden, um beim Herunterfahren / Neustarten mit dem folgenden Befehl ausgeführt zu werden:
sudo update-rc.d pause_hook defaults
Erstellen Sie die Dateien, /etc/pause_hook.conf
die die Zeile enthalten , um dann den tatsächlichen Hook zu aktivieren :
PAUSE_HOOK_ENABLED=true
Der Vorgang zum Herunterfahren / Neustarten sollte jetzt kurz vor dem halt
Aufrufen des reboot
Skripts oder angehalten werden, damit Zeit zum Anzeigen der Nachrichten bleibt. Es kann auch einfach deaktiviert / wieder aktiviert werden, indem die Aktivierungszeile in kommentiert / nicht kommentiert wird /etc/pause_hook.conf
. Auf dpkg
diese Weise treten bei Upgrades auch keine Conffile-Konflikte auf.