1 von 10 Mal hängt systemd beim Neustart. Ich verstehe den Grund nicht. Was / wo sollte ich suchen, um das Problem zu beheben? Ich verwende systemd v196 und kann es nicht auf Version> = 198 aktualisieren, da letzteres einen aktuellen Kernel (mit Unterstützung für cgroups) erfordert, der nicht durch Kundenanforderungen aktualisiert werden kann. Ich frage mich, ob es einen vernünftigen Weg gibt, den Grund für dieses Verhalten zu ermitteln und das System dazu zu bringen, das System bedingungslos neu zu starten.
Beachten Sie, dass dieser Link nicht hilft: http://freedesktop.org/wiki/Software/systemd/Debugging/#index2h1
Wie Sie dort lesen können:
Das Herunterfahren wird nie beendet
Wenn der normale Neustart oder das Ausschalten auch nach einigen Minuten Wartezeit nie abgeschlossen wird, hilft die oben beschriebene Methode zum Erstellen des Herunterfahrprotokolls nicht und das Protokoll muss mit anderen Methoden abgerufen werden. Zwei Optionen, die zum Debuggen von Startproblemen nützlich sind, können auch für Probleme beim Herunterfahren verwendet werden:
use a serial console use a debug shell - not only is it available from early boot, it also stays active until late shutdown.
Ich verwende die serielle Konsole und kann mich aus irgendeinem Grund sogar anmelden, da die eth-Schnittstelle aktiv ist oder aufgerufen wurde (nachdem während der Neustartschritte eine Trennung aufgetreten ist).
Ich sehe den Grund nicht.
# cat /etc/systemd/system/
basic.target.wants/ getty.target.wants/ multi-user.target.wants/ sysinit.target.wants/
dbus-org.freedesktop.NetworkManager.service local-fs-pre.target.wants/ sockets.target.wants/ syslog.service
display-manager.service local-fs.target.wants/ swap.target
Beachten Sie das swap.target. Es ist da, aber wir verwenden überhaupt keine Swap-Partitionen. Ich habe versucht, den Tausch zu maskieren, aber das Problem mit dem Aufhängen ist groß. Die letzte Zeile in der Konsole lautet:
[OK] Stopped target shutdown.
EDIT: Wie gesagt, ich kann mich über ssh over eth erneut anmelden.
Jetzt zeige ich Ihnen zwei Protokolle. Das erste Protokoll wird erstellt, wenn der Neustart / Shutdwon hängt, während das zweite Protokoll erstellt wird, wenn der Neustart erfolgreich ist:
Fall hängen, die Ausgabe ist immer so (vollständiges Protokoll):
[ OK ] Stopped Network Time Service (one-shot ntpdate mode).
Stopping Modem and VPN connections autoconnect...
Stopping Login Service...
Stopping LSB: Avahi mDNS/DNS-SD Daemon...
[ OK ] Stopped Monitoring free system resources.
[ OK ] Stopped Monitoring dropbear socket.
[ OK ] Stopped Login Service.
[ OK ] Stopped Modem and VPN c[ OK ] Stopped Getty on tty1.
[ OK ] Stopped Serial Getty on ttyO0.
[ OK ] Unmounted /var/lib/opkg.
[ OK ] Stopped Network Manager.
[ OK ] Stopped LSB: Avahi mDNS/DNS-SD Daemon.
Stopping D-Bus System Message Bus...
[ OK ] Stopped target Remote File Systems.
[ OK ] Stopped Suspend manager.
Stopping X Server...
[ OK ] Stopped X Server.
Stopping System Logging Service...
[ OK ] Stopped System Logging Service.
[ 77.580000] g_ether gadget: using random self ethernet address
[ 77.580000] g_ether gadget: using random host ethernet address
[ 77.590000] usb0: MAC 6e:0d:de:b0:33:4f
[ 77.590000] usb0: HOST MAC 62:7a:81:02:f3:ff
[ 77.600000] g_ether gadget: Ethernet Gadget, version: Memorial Day 2008
[ 77.600000] g_ether gadget: g_ether ready
[ 77.610000] musb-hdrc musb-hdrc.0: MUSB HDRC host driver
[ 77.610000] musb-hdrc musb-hdrc.0: new USB bus registered, assigned bus number 2
[ 77.620000] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002
[ 77.630000] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 77.640000] usb usb2: Product: MUSB HDRC host driver
[ 77.640000] usb usb2: Manufacturer: Linux 2.6.37 musb-hcd
[ 77.650000] usb usb2: SerialNumber: musb-hdrc.0
[ 77.650000] hub 2-0:1.0: USB hub found
[ 77.660000] hub 2-0:1.0: 1 port detected
[ 77.690000] ADDRCONF(NETDEV_UP): usb0: link is not ready
[ OK ] Stopped target Reboot.
[ OK ] Stopped Reboot.
[ OK ] Stopped target Unmount All Filesystems.
[ OK ] Stopped target Shutdown.
[ 78.330000] <46>systemd-journald[328]: Received SIGUSR1
<hang>
Normaler Neustart:
Unmounting /var/lib/opkg...
[ OK ] Stopped target Network.
Stopping SSH Per-Connection Server...
[ OK ] Stopped target Graphical Interface.
[ OK ] Stopped target Multi-User.
Stopping Monitoring free system resources...
Stopping Monitoring dropbear socket...
Stopping Network Time Service (one-shot ntpdate mode)...
[ OK ] Stopped Network Time Service (one-shot ntpdate mode).
Stopping Modem and VPN connections autoconnect...
Stopping Login Service...
Stopping LSB: Avahi mDNS/DNS-SD Daemon...
[ OK ] Stopped Monitoring free system resources.
[ OK ] Stopped Monitoring dropbear socket.
[ OK ] Stopped Login Service.
[ OK ] Unmounted /var/lib/opkg.
Stopping Network Manager...
[ OK ] Stopped Getty on tty1.
[ OK ] Stopped Network Manager.
[ OK ] Stopped Serial Getty on ttyO0.
[ OK ] Stopped Suspend manager.
[ OK ] Stopped LSB: Avahi mDNS/DNS-SD Daemon.
Stopping D-Bus System Message Bus...
Stopping X Server...
Stopping Permit User Sessions...
[ OK ] Stopped Permit User Sessions.
[ OK ] Stopped target Remote File Systems.
[ OK ] Stopped X Server.
[ OK ] Stopped D-Bus System Message Bus.
Stopping System Logging Service...
[ OK ] Stopped System Logging Service.
[ OK ] Stopped target Basic System.
[ OK ] Stopped target Sockets.
[ OK ] Closed dropbear.socket.
[ OK ] Closed D-Bus System Message Bus Socket.
[ OK ] Stopped target System Initialization.
Stopping Import configuration from SD card...
[ OK ] Stopped Import configuration from SD card.
Stopping Load Kernel Modules...
Stopping Apply Kernel Variables...
[ OK ] Stopped Apply Kernel Variables.
[ OK ] Stopped target Local File Systems.
Unmounting /var...
Unmounting /tmp...
[ OK ] Closed Syslog Socket.
[ OK ] Failed unmounting /var.
[ OK ] Unmounted /tmp.
[ OK ] Stopped Load Kernel Modules.
[ OK ] Reached target Unmount All Filesystems.
[ OK ] Stopped target Local File Systems (Pre).
Stopping Remount Root and Kernel File Systems...
[ OK ] Stopped Remount Root and Kernel File Systems.
[ OK ] Reached target Shutdown.
[ 52.340000] omap_wdt: Unexpected close, not stopping!
Sending SIGTERM to remaining processes...
[ 52.490000] <46>systemd-journald[335]: Received SIGTERM
Sending SIGKILL to remaining processes...
Unmounting file systems.
Unmounting /sys/fs/fuse/connections.
Unmounting /var.
All filesystems unmounted.
Deactivating swaps.
All swaps deactivated.
AKTUALISIEREN:
Nach einigen Untersuchungen und Debugging habe ich den Grund für die Unterbrechung des Herunterfahrens entdeckt, obwohl ich ihn immer noch nicht lösen kann. Aus bestimmten Gründen wird einer der benutzerdefinierten Dienste vor Abschluss des Herunterfahrens gestartet, wodurch der Vorgang zum Herunterfahren hängen bleibt. Das ist ein Fall von Hang. Eine andere Art des Hängens ist, wenn das Herunterfahren nicht unterbrochen wird, sondern irgendwann stoppt. Aus diesem Grund möchte ich den Hardware-Watchdog unbedingt aktivieren, bevor ich alle Konflikte und andere mögliche Probleme einzeln löse. Um dies über systemd zu tun, habe ich RuntimeWatchdogSec und ShutdownWatchdogSec entweder separat oder zusammen aktiviert und getestet. Leider haben sie nicht geholfen. Durch Betrachten des Quellcodes,
Ich stecke fest. Ich bitte Sie, einen Weg zu finden, um entweder: 1. den Watchdog bedingungslos zu aktivieren, zumindest ab dem Punkt, an dem das Herunterfahren beginnt. 2. alle Konflikte auf einfache Weise zu erkennen und zu lösen
Die erste Lösung ist bevorzugt.
Antworten:
Ich wage es, eine Lösung vorzuschlagen: versuchen Sie es hinzuzufügen
an /usr/lib/systemd/system/dbus.service.
Ich bin von einer Kuriosität in Ihren Protokollen betroffen, die mich an einen Unfall erinnert, den ich vor einiger Zeit in den Arch Linux-Foren gelesen habe : Dieses System würde beim Neustart hängen bleiben. Die Lösung wurde wie oben angeboten, mit der Begründung, dass der Hang durch einen Dienst verursacht würde, der versucht, nach dem Anhalten mit dem D-Bus zu sprechen:
In Ihrem ungesunden Protokoll sehen wir tatsächlich, dass das Basissystem nicht gestoppt wird, während es im fehlerfreien Protokoll ordnungsgemäß gestoppt wird .
Sollte dies nicht funktionieren und da Sie kein Upgrade durchführen können, haben Sie ein Downgrade in Betracht gezogen?
quelle
/usr/lib/systemd/user/dbus.service
unter[Unit]
Abschnittshutdown.target
Konflikte mit allen anderen Einheiten standardmäßig, um sie beim Starten des Herunterfahrens automatisch zu stoppen. Dies funktioniert auch umgekehrt - wenn ein anderes Gerät startet, wird esshutdown.target
gestoppt. Das Problem ist also , dass beim Herunterfahren etwas startet, was den Herunterfahrvorgang überschreibt.Dies sollte in systemd v198 behoben worden sein, wodurch der Shutdown-Job "unersetzlich" wird.
quelle
Möglicherweise ist der Swap noch aktiv, wenn "Zielabschaltung" erreicht ist. Meine Lösung bestand darin, die Deaktivierung des Austauschs vor dem Neustart zu erzwingen:
Danach verlief der Neustart für mich ohne Pause.
quelle