Schau dir diese Antwort auf askubuntu an. Es kann Ihnen bei Ihrem Problem helfen.
Solde9
alles recored an /var/log/syslogund /var/log/messages, damit Sie sie und throubleshoot lesen müssen. Sie können io redirectionmit verwenden, error redirectionwenn Sie verwendenshutdown command
PersianGulf
Antworten:
14
Es scheint keine Möglichkeit zu geben, diese Daten in einer Datei zu protokollieren. Für den Boot-Vorgang gibt es das bootlogdPaket, 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 rsysloggestoppt 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/haltund / oder /etc/init.d/rebootvor dem eigentlichen halt/ anzuhalten reboot. haltFü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_stopFunktion stehen und die einzige Zeile sein, die den haltBefehl 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/rebootDatei bearbeiten . Der hier verwendete Befehl steht natürlich rebootim Gegensatz zu haltund sollte wieder am Ende der do_stopFunktion 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 initscriptsPaket 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_hookund 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.confdie 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 haltAufrufen des rebootSkripts 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 dpkgdiese Weise treten bei Upgrades auch keine Conffile-Konflikte auf.
Ich kann nicht glauben, dass es keine Datei mit diesen Nachrichten gibt !!! Ich werde versuchen, per Video aufzunehmen.
Sigur
7
Einige dieser Nachrichten werden gedruckt, nachdem die Bereitstellung der Dateisysteme aufgehoben wurde! Sie können also nicht alle in einer Datei landen.
Jim Paris
4
Sehen Sie das Protokoll in Echtzeit
Ich habe festgestellt, dass es beim Herunterfahren normalerweise ein Ubuntu-Logo und blinkende Lichter gibt, die anstelle eines Protokolls des Herunterfahrvorgangs angezeigt werden. Wenn es Fehler gibt, werden sie irgendwie angezeigt, aber chaotisch. Wenn ich jedoch beim Herunterfahren die Windows-Taste und r( Metar) drücke , kann ich den Erfolg und Misserfolg der Systemdienste sehen, sobald sie auftreten. Also dann weiß ich was genau kaputt ist. Keine Ahnung, ob diese Tastenkombination für mein Kubuntu-Setup spezifisch ist oder was; Ich habe es nicht hinzugefügt. Einer von denen, die ich zufällig gefunden habe, irgendwie ...
Anzeigen der Protokolle nach dem Neustart
Beim Neustart des Systems sollten die Fehlermeldungen in einer Protokolldatei gespeichert werden. Welche Protokolldatei von welchem Dienst abhängt, ist defekt / falsch konfiguriert. Das relevante Protokoll befindet sich mit ziemlicher Sicherheit in /var/log/(oder einem Unterverzeichnis davon). ls, less, grepUnd findhaben die einzigen Programme , die ich für die Suche nach Fehlermeldungen in den Protokollen benötigt haben ...
Wenn Sie den Fehler und den Dienst gefunden haben, der ihn verursacht hat, müssen Sie den Computer nicht neu starten, um die neue Konfiguration zu testen. Starten Sie einfach den Dienst neu. Hoffentlich können Sie die feste Konfiguration mit einem Befehl wie dem folgenden testen:
Drücken Sie Windows + r oder Alt + r? Standardzuordnungen ordnen die Windows-Taste "Super" und die Meta-Taste "Alt" zu, sodass nicht klar ist, welche Taste Sie genau beschreiben.
Casey
3
Nachdem bootlogdwir uns angesehen haben, wie die Protokollierung tatsächlich durchgeführt wird, hat sich herausgestellt, dass es überredet werden kann, sowohl den Herunterfahren- / Neustartprozess als auch den Startprozess zu protokollieren. bootlogdwird früh im Bootprozess gestartet. Anschließend werden einige Aktionen mit ttyund ptsGeräten ausgeführt, um alle Ausgaben auf dem Terminal zu protokollieren, mit dem sie verbunden sind. Es wird dann später während des Startvorgangs angehalten, vermutlich bevor die Ausgabe eines Benutzers protokolliert wird, der an dem Programm arbeitet tty.
Wird bootlogdder Computer während des Herunterfahrens / Neustarts erneut gestartet und angehalten, bevor das Dateisystem, das das Protokoll enthält, ausgehängt wird, wird der größte Teil des Herunterfahrens aufgezeichnet und kann beim nächsten Start gelesen werden.
bootlogdschafft es, während des Startvorgangs mit zwei initSkripten gestartet und gestoppt zu werden . Eines ist ein normales initSkript, das den Prozess wie gewohnt startet / stoppt. Das andere ist ein 'umgekehrtes' initSkript, das beim Aufruf mit startdas erste Skript mit stop aufruft. Dies "trickst" den sysvinitProzess aus. Es scheint, dass zwei separate Dienste gestartet werden, wenn derselbe Dienst tatsächlich gestartet und gestoppt wird. Dies ist erforderlich, um sicherzustellen, dass alles in der richtigen Reihenfolge abläuft.
Um bootlogdwährend des Herunterfahrens ausgeführt zu werden, ist Folgendes erforderlich:
Installieren bootlogdSie, falls noch nicht geschehen.
Kopieren Sie die beiden Init-Skripte
Beenden Sie die Skriptänderung "umgekehrt", um zu starten, anstatt zu starten, um anzuhalten.
Ändern Sie die LSB-Header so, dass beide Skripts beim Herunterfahren / Neustarten zum richtigen Zeitpunkt ausgeführt werden
Installiere sie mit update-rc.d.
Hier sind meine Änderungen als Copy / Paste- bashSkript (wenn Sie die Änderungen manuell vornehmen möchten, befinden sich die von mir verwendeten LSB-Header im Patch):
cd /etc/init.d
cp bootlogd shutdown-bootlogd
cp stop-bootlogd shutdown-start-bootlogd
echo -e 'diff -ur ./shutdown-bootlogd /etc/init.d/shutdown-bootlogd
--- ./shutdown-bootlogd\t2014-02-20 13:59:23.426109512 +0000
+++ /etc/init.d/shutdown-bootlogd\t2014-02-20 11:10:56.238656828 +0000
@@ -1,14 +1,13 @@
#! /bin/sh
-### BEGIN INIT INFO
-# Provides: bootlogd
-# Required-Start: mountdevsubfs
-# X-Start-Before: hostname keymap keyboard-setup procps pcmcia hwclock hwclockfirst hdparm hibernate-cleanup lvm2
-# Required-Stop:
-# Default-Start: S
-# Default-Stop:
-# Short-Description: Start or stop bootlogd.
-# Description: Starts or stops the bootlogd log program
-# which logs boot messages.
+### BEGIN INIT INFO
+# Provides: shutdown-bootlogd
+# Required-Start:
+# Required-Stop: umountroot halt reboot
+# Default-Start:
+# Default-Stop: 0 6
+# X-Stop-After: umountfs
+# Short-Description: Stop bootlogd at shutdown.
+# Description:
### END INIT INFO
PATH=/sbin:/bin # No remote fs at start
diff -ur ./shutdown-start-bootlogd /etc/init.d/shutdown-start-bootlogd
--- ./shutdown-start-bootlogd\t2014-02-20 13:59:23.430107513 +0000
+++ /etc/init.d/shutdown-start-bootlogd\t2014-02-20 11:10:56.238656828 +0000
@@ -1,24 +1,24 @@
#! /bin/sh
### BEGIN INIT INFO
-# Provides: stop-bootlogd
-# Required-Start: $local_fs $all
-# Required-Stop:
-# Default-Start: 2 3 4 5
-# Default-Stop:
-# Short-Description: Stop bootlogd
-# Description: See the init.d/bootlogd script
+# Provides: shutdown-start-bootlogd
+# Required-Start:
+# Required-Stop: $local_fs $all
+# Default-Start:
+# Default-Stop: 0 6
+# Short-Description: Start or stop bootlogd at shutdown.
+# Description:
### END INIT INFO
-NAME=stop-bootlogd
+NAME=shutdown-start-bootlogd
DAEMON=/sbin/bootlogd
[ -x "$DAEMON" ] || exit 0
case "$1" in
- start)
-\t/etc/init.d/bootlogd stop
+ stop)
+\t/etc/init.d/bootlogd start
\t;;
- stop|restart|force-reload)
+ start|restart|force-reload)
\t# No-op
\t;;
status)
' | patch
update-rc.d shutdown-bootlogd defaults
update-rc.d shutdown-start-bootlogd defaults
Alle Nachrichten, die zuvor bootlogdangezeigt wurden, werden in gespeichert /var/log/boot. bootlogdEntfernt die Escape-Zeichen aus dem Textstrom. Mit dem folgenden bashBefehl ( ) wird das Protokoll in der Farbe angezeigt, die beim Herunterfahren angezeigt wird:
sed $'s/\^\[/\E/g;s/\[1G\[/\[27G\[/' /var/log/boot | less -r
Der Speicherort des Protokolls kann durch weitere Bearbeitung der Skripte geändert werden. Leider muss jedes Erscheinungsbild der Datei geändert werden (auch das Ersetzen /ver/log/bootreicht nicht aus, da das Skript an einer Stelle ein cdto /var/logausführt).
Das obige funktioniert auch nur, wenn /var/loges sich auf den rootfs befindet. Wenn nicht, müssen die Abhängigkeiten überarbeitet werden, umountfsdamit dies nach dem bootlogdStoppen erfolgt. Oder loggen Sie sich in eine Datei auf dem rootfs.
Sie müssen alle /etc/rc6.d/* -Dateien bearbeiten und ihre Ausgabe in eine Datei umleiten, die Sie später lesen können.
Diese Weiterleitung sagt Ihnen auch, welches Programm failedund why.
Darüber hinaus müssen Sie den Parameter ändern, start-stop-daemonindem Sie ihn entfernen --quietund -vin all diesen Dateien Parameter hinzufügen .
Wenn Sie dies tun, stellen Sie sicher, dass Sie alle vorgenommenen Änderungen rückgängig machen. Sichern Sie die vorhandenen Dateien, bevor Sie Änderungen vornehmen.
IN ORDNUNG. Das wird mir viel Arbeit abnehmen. Ich werde es versuchen. Vielen Dank.
Sigur
Lassen Sie mich das Ergebnis dann wissen
SHW
Das Bearbeiten von Skripten in /etc/init.d(alles in /etc/rc?.dLinks zu hier) führt zu nichts. Die Ausgabe erfolgt nicht direkt, sondern über die Funktionen in /lib/lsb/init-functionsund andere Dateien, die sie wiederum generiert. Sie könnten diese bearbeiten, einige Upgrades würden die Änderungen jedoch zunichte machen.
Graeme
Die einzige relevante Funktion oder Binärdatei stammt start-stop-daemonvon OPs PoV. Warten auf seine Antwort
SHW
@ SHW Nö, sieh dir die Skripte an. Der größte Teil der Ausgabe stammt aus anderen Teilen des Skripts. Ich denke nicht, dass es start-stop-daemonirgendwelche Ausgaben gibt, zumindest nicht normal. Die Skripte generieren eine OK / Fail-Ausgabe basierend auf der Rückgabe mit log_end_msg. Sehen /lib/lsb/init-functions.d/20-left-info-blocks.
Graeme
0
/var/log/messagesgibt Ihnen die Daten, die Sie benötigen. Wenn es für Sie nicht ausreicht, ändern Sie die Einstellungen /etc/syslog.conf, um alle Daten zu protokollieren (ich würde versuchen , die Protokollierung von Kernelfehlern (auch bekannt als * kern) zu aktivieren ), kehren Sie jedoch nach dem Neustart zurück, da sonst viel Platz für die Protokolle verbraucht wird
Es gibt keine /etc/syslog.conf. Es gibt nur sysctl.conf sysctl.d/ systemd/.
Sigur
1
versuchen Sie /etc/rsyslog.conf
kaboom
0
Für meinen Laptop reicht sudo haltdas Herunterfahren der Software nicht für Hardware. dh der Bildschirm und andere Hardware laufen weiter. Die letzte Meldung auf dem Bildschirm lautet
System wurde angehalten
An diesem Punkt drücke ich einfach den Ein- / Ausschalter und alles aus. Sie können dies versuchen. Sie können es auch versuchensudo halt --verbose
Ich denke also, dass dies ein absolut sicherer Prozess ist. Keine Beschädigung der Hardware ?!
Sigur
0
Wie Graeme sagte, gibt es mit ro oder dismounted filesystem, kill klogd keine Möglichkeit, solche Informationen in eine Datei zu schreiben. Eine Lösung kann die Verwendung einer Konsole (serielle Schnittstelle) sein, die in Bootargs definiert ist. Schließen Sie einfach ein Nullmodemkabel an einen anderen PC (Tablet oder Smartphone mit entsprechendem Adapter) und einen Terminalemulator an.
Fehlermeldungen (und andere) werden normalerweise plymouthaus ästhetischen Gründen ausgeblendet .
Vielleicht hilft das: Wenn Sie beim Herunterfahren die ESC-Taste drücken, plymouthwird die grafische Konsole angezeigt. Zeigt Ihnen das nützliche Nachrichten?
Abgesehen davon können Sie nur wenig tun, wenn der Computer tatsächlich abstürzt, da die Protokolldatei möglicherweise nicht geschrieben werden kann. /var/logDies hängt davon ab, wann der Absturz eintritt. Sie können sich diese Dateien ansehen, indem Sie ausführen ls -ltr /var/logund prüfen, ob es eine Protokolldatei gibt, die Ihrem Datum für das Herunterfahren entspricht (oder eine neuere).
/var/log/syslog
und/var/log/messages
, damit Sie sie und throubleshoot lesen müssen. Sie könnenio redirection
mit verwenden,error redirection
wenn Sie verwendenshutdown command
Antworten:
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 anzumeldenrsyslog
, und selbst wenn vorhanden, werden Meldungen gedruckt, nachdem siersyslog
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 eigentlichenhalt
/ anzuhaltenreboot
.halt
Führen Sie für das Skript den Befehl aussudoedit /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:Andernfalls sollte es am Ende der
do_stop
Funktion stehen und die einzige Zeile sein, die denhalt
Befehl aufruft . Sobald Sie die Zeile gefunden haben, fügen Sie einfach eine neue Zeile ein: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ürlichreboot
im Gegensatz zuhalt
und sollte wieder am Ende derdo_stop
Funktion stehen. Für mich ist die Linie:Fügen Sie einfach folgendes in eine neue Zeile ein:
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:
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:Erstellen Sie die Dateien,
/etc/pause_hook.conf
die die Zeile enthalten , um dann den tatsächlichen Hook zu aktivieren :Der Vorgang zum Herunterfahren / Neustarten sollte jetzt kurz vor dem
halt
Aufrufen desreboot
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
. Aufdpkg
diese Weise treten bei Upgrades auch keine Conffile-Konflikte auf.quelle
Die einfachste Lösung könnte darin bestehen, ein Video anstelle eines Fotos aufzunehmen. Sie können es später Bild für Bild durchgehen.
quelle
Sehen Sie das Protokoll in Echtzeit
Ich habe festgestellt, dass es beim Herunterfahren normalerweise ein Ubuntu-Logo und blinkende Lichter gibt, die anstelle eines Protokolls des Herunterfahrvorgangs angezeigt werden. Wenn es Fehler gibt, werden sie irgendwie angezeigt, aber chaotisch. Wenn ich jedoch beim Herunterfahren die Windows-Taste und
r
( Metar) drücke , kann ich den Erfolg und Misserfolg der Systemdienste sehen, sobald sie auftreten. Also dann weiß ich was genau kaputt ist. Keine Ahnung, ob diese Tastenkombination für mein Kubuntu-Setup spezifisch ist oder was; Ich habe es nicht hinzugefügt. Einer von denen, die ich zufällig gefunden habe, irgendwie ...Anzeigen der Protokolle nach dem Neustart
Beim Neustart des Systems sollten die Fehlermeldungen in einer Protokolldatei gespeichert werden. Welche Protokolldatei von welchem Dienst abhängt, ist defekt / falsch konfiguriert. Das relevante Protokoll befindet sich mit ziemlicher Sicherheit in
/var/log/
(oder einem Unterverzeichnis davon).ls
,less
,grep
Undfind
haben die einzigen Programme , die ich für die Suche nach Fehlermeldungen in den Protokollen benötigt haben ...Wenn Sie den Fehler und den Dienst gefunden haben, der ihn verursacht hat, müssen Sie den Computer nicht neu starten, um die neue Konfiguration zu testen. Starten Sie einfach den Dienst neu. Hoffentlich können Sie die feste Konfiguration mit einem Befehl wie dem folgenden testen:
sudo service <service name> restart
quelle
Nachdem
bootlogd
wir uns angesehen haben, wie die Protokollierung tatsächlich durchgeführt wird, hat sich herausgestellt, dass es überredet werden kann, sowohl den Herunterfahren- / Neustartprozess als auch den Startprozess zu protokollieren.bootlogd
wird früh im Bootprozess gestartet. Anschließend werden einige Aktionen mittty
undpts
Geräten ausgeführt, um alle Ausgaben auf dem Terminal zu protokollieren, mit dem sie verbunden sind. Es wird dann später während des Startvorgangs angehalten, vermutlich bevor die Ausgabe eines Benutzers protokolliert wird, der an dem Programm arbeitettty
.Wird
bootlogd
der Computer während des Herunterfahrens / Neustarts erneut gestartet und angehalten, bevor das Dateisystem, das das Protokoll enthält, ausgehängt wird, wird der größte Teil des Herunterfahrens aufgezeichnet und kann beim nächsten Start gelesen werden.bootlogd
schafft es, während des Startvorgangs mit zweiinit
Skripten gestartet und gestoppt zu werden . Eines ist ein normalesinit
Skript, das den Prozess wie gewohnt startet / stoppt. Das andere ist ein 'umgekehrtes'init
Skript, das beim Aufruf mitstart
das erste Skript mit stop aufruft. Dies "trickst" densysvinit
Prozess aus. Es scheint, dass zwei separate Dienste gestartet werden, wenn derselbe Dienst tatsächlich gestartet und gestoppt wird. Dies ist erforderlich, um sicherzustellen, dass alles in der richtigen Reihenfolge abläuft.Um
bootlogd
während des Herunterfahrens ausgeführt zu werden, ist Folgendes erforderlich:bootlogd
Sie, falls noch nicht geschehen.update-rc.d
.Hier sind meine Änderungen als Copy / Paste-
bash
Skript (wenn Sie die Änderungen manuell vornehmen möchten, befinden sich die von mir verwendeten LSB-Header im Patch):Alle Nachrichten, die zuvor
bootlogd
angezeigt wurden, werden in gespeichert/var/log/boot
.bootlogd
Entfernt die Escape-Zeichen aus dem Textstrom. Mit dem folgendenbash
Befehl ( ) wird das Protokoll in der Farbe angezeigt, die beim Herunterfahren angezeigt wird:Weitere Informationen hierzu finden Sie in dieser Frage - /programming/10757823/display-file-with-escaped-color-codes-boot-messages-from-bootlog-daemon/19011140
Der Speicherort des Protokolls kann durch weitere Bearbeitung der Skripte geändert werden. Leider muss jedes Erscheinungsbild der Datei geändert werden (auch das Ersetzen
/ver/log/boot
reicht nicht aus, da das Skript an einer Stelle eincd
to/var/log
ausführt).Das obige funktioniert auch nur, wenn
/var/log
es sich auf den rootfs befindet. Wenn nicht, müssen die Abhängigkeiten überarbeitet werden,umountfs
damit dies nach dembootlogd
Stoppen erfolgt. Oder loggen Sie sich in eine Datei auf dem rootfs.quelle
Sie müssen alle /etc/rc6.d/* -Dateien bearbeiten und ihre Ausgabe in eine Datei umleiten, die Sie später lesen können.
Diese Weiterleitung sagt Ihnen auch, welches Programm
failed
undwhy
.Darüber hinaus müssen Sie den Parameter ändern,
start-stop-daemon
indem Sie ihn entfernen--quiet
und-v
in all diesen Dateien Parameter hinzufügen .Wenn Sie dies tun, stellen Sie sicher, dass Sie alle vorgenommenen Änderungen rückgängig machen. Sichern Sie die vorhandenen Dateien, bevor Sie Änderungen vornehmen.
quelle
/etc/init.d
(alles in/etc/rc?.d
Links zu hier) führt zu nichts. Die Ausgabe erfolgt nicht direkt, sondern über die Funktionen in/lib/lsb/init-functions
und andere Dateien, die sie wiederum generiert. Sie könnten diese bearbeiten, einige Upgrades würden die Änderungen jedoch zunichte machen.start-stop-daemon
von OPs PoV. Warten auf seine Antwortstart-stop-daemon
irgendwelche Ausgaben gibt, zumindest nicht normal. Die Skripte generieren eine OK / Fail-Ausgabe basierend auf der Rückgabe mitlog_end_msg
. Sehen/lib/lsb/init-functions.d/20-left-info-blocks
./var/log/messages
gibt Ihnen die Daten, die Sie benötigen. Wenn es für Sie nicht ausreicht, ändern Sie die Einstellungen/etc/syslog.conf
, um alle Daten zu protokollieren (ich würde versuchen , die Protokollierung von Kernelfehlern (auch bekannt als * kern) zu aktivieren ), kehren Sie jedoch nach dem Neustart zurück, da sonst viel Platz für die Protokolle verbraucht wirdquelle
/etc/syslog.conf
. Es gibt nursysctl.conf sysctl.d/ systemd/
.Für meinen Laptop reicht
sudo halt
das Herunterfahren der Software nicht für Hardware. dh der Bildschirm und andere Hardware laufen weiter. Die letzte Meldung auf dem Bildschirm lautetAn diesem Punkt drücke ich einfach den Ein- / Ausschalter und alles aus. Sie können dies versuchen. Sie können es auch versuchen
sudo halt --verbose
quelle
Wie Graeme sagte, gibt es mit ro oder dismounted filesystem, kill klogd keine Möglichkeit, solche Informationen in eine Datei zu schreiben. Eine Lösung kann die Verwendung einer Konsole (serielle Schnittstelle) sein, die in Bootargs definiert ist. Schließen Sie einfach ein Nullmodemkabel an einen anderen PC (Tablet oder Smartphone mit entsprechendem Adapter) und einen Terminalemulator an.
quelle
Fehlermeldungen (und andere) werden normalerweise
plymouth
aus ästhetischen Gründen ausgeblendet .Vielleicht hilft das: Wenn Sie beim Herunterfahren die ESC-Taste drücken,
plymouth
wird die grafische Konsole angezeigt. Zeigt Ihnen das nützliche Nachrichten?Abgesehen davon können Sie nur wenig tun, wenn der Computer tatsächlich abstürzt, da die Protokolldatei möglicherweise nicht geschrieben werden kann.
/var/log
Dies hängt davon ab, wann der Absturz eintritt. Sie können sich diese Dateien ansehen, indem Sie ausführenls -ltr /var/log
und prüfen, ob es eine Protokolldatei gibt, die Ihrem Datum für das Herunterfahren entspricht (oder eine neuere).quelle