Schauen Sie sich um, um näher an der eigentlichen Ursache zu sein
Das Problem scheint das Skript zu sein, das beim Herunterfahren ausgeführt wird.
Ich habe die entsprechende Datei identifiziert mit:
find /etc/systemd -name *unattended*
was mir das zugehörige systemd script gibt:
/etc/systemd/system/shutdown.target.wants/unattended-upgrades.service
was mir dann sagte, dass das Skript beim Herunterfahren ausgeführt wurde:
/usr/share/unattended-upgrades/unattended-upgrade-shutdown
Tiefer untersuchen, um die Ursache zu finden
In diesem Skript befindet sich in Zeile 120 ein Abschnitt, der sich auf den Abschnitt in /etc/apt/apt.conf.d/50unattended-upgrades -> Unattended-Upgrade :: InstallOnShutdown bezieht
Zeile 120 von / usr / share / unbeaufsichtigte-Upgrades / unbeaufsichtigtes-Upgrade-Herunterfahren:
if apt_pkg.config.find_b("Unattended-Upgrade::InstallOnShutdown", False):
Das Problem: Es erwartet das Schlüsselwort "False", während in der apt conf "false" hinzugefügt werden sollte (genauer Zeichenfolgenvergleich)!
Lösung
Ich konnte das Stalling Shutdown auf 3 verschiedene Arten beheben / umgehen:
Problemumgehung A
- schreibe "False" statt "false" in /etc/apt/apt.conf.d/50unattended-upgrades
Diese Einstellung ist upgrade-sicher, bis ein tatsächlicher Fix bereitgestellt wird, da die hier geänderte Datei nicht durch ein Update unbeaufsichtigter Upgrades überschrieben wird. Problem: Wenn die Grundursache behoben ist, führt dies zu einem erneuten Stillstand. Daher schlage ich vor, dies mit Problemumgehung B zu kombinieren.
ODER: Problemumgehung B
- Verringern Sie die Wartezeit in /etc/systemd/system/shutdown.target.wants/unattended-upgrades.service von Standard auf 15 Sekunden:
vim /etc/systemd/system/shutdown.target.wants/unattended-upgrades.service
[Bedienung]
Typ = ein Schuss
ExecStart = / usr / share / unbeaufsichtigte-Upgrades / unbeaufsichtigtes-Upgrade-Herunterfahren
TimeoutStartSec = 15
Diese Einstellung ist NICHT aktualisierungssicher, da die hier geänderte Datei möglicherweise durch eine Aktualisierung von unbeaufsichtigten Aktualisierungen überschrieben wird. Abgesehen davon ist es wirklich weit davon entfernt, etwas zu reparieren, aber es stellt sicher, dass Ihr System beim Herunterfahren nicht mehrere Minuten wartet. Denken Sie daran, dass Sie dies nach einem Upgrade von unbeaufsichtigten Upgrades möglicherweise erneut festlegen müssen!
ODER: Fix C (muss vorab gemeldet werden)
- Fix / usr / share / unbeaufsichtigte-Upgrades / unbeaufsichtigte-Upgrades-Shutdown, um "false" anstelle von "False" zu erwarten
Patchen von / usr / share / unbeaufsichtigt-Upgrades / unbeaufsichtigt-Upgrade-Herunterfahren:
--- / tmp / unattended-upgrade-shutdown 2017-02-03 14: 53: 03.238103238 +0100
+++ / tmp / unattended-upgrade-shutdown_fix 2017-02-03 14: 53: 17.685589001 +0100
@@ -117,7 +117,7 @@
# starte es
p = keine
apt_pkg.init_config ()
- if apt_pkg.config.find_b ("Unattended-Upgrade :: InstallOnShutdown", False):
+ if apt_pkg.config.find_b ("Unattended-Upgrade :: InstallOnShutdown", false):
env = copy.copy (os.environ)
env ["UNATTENDED_UPGRADES_FORCE_INSTALL_ON_SHUTDOWN"] = "1"
logging.debug ("unbeaufsichtigte Upgrades im Shutdown-Modus starten")
Fazit
tbh nur der letzte ist eine echte Lösung. Die beiden anderen Optionen sind nur Problemumgehungen, bis der eigentliche Fix implementiert wird.
Dies muss im Upstream erfolgen, da dies sowohl Debian (getestet auf Debian Stretch) als auch Ubuntu (getestet auf Ubuntu 16.04.1) für beide Distributionen betrifft.
Ich habe hier einen Fehlerbericht geöffnet: https://bugs.launchpad.net/ubuntu/+source/unattended-upgrades/+bug/1661611