Mirando alrededor para acercarse a la causa raíz
El problema parece ser el script que se ejecuta al apagar.
Identifiqué el archivo correspondiente con:
find /etc/systemd -name *unattended*
lo que me dio el script systemd relacionado:
/etc/systemd/system/shutdown.target.wants/unattended-upgrades.service
que luego me dijo que el script se ejecutó al apagar:
/usr/share/unattended-upgrades/unattended-upgrade-shutdown
Investigando más profundamente para encontrar la causa raíz
dentro de este script hay una sección en la línea 120 relacionada con la sección en /etc/apt/apt.conf.d/50unattended-upgrades -> Unattended-Upgrade :: InstallOnShutdown
Línea 120 de / usr / share / desatendido-actualizaciones / desatendido-actualización-apagado:
if apt_pkg.config.find_b("Unattended-Upgrade::InstallOnShutdown", False):
El problema: ¡espera la palabra clave "False" mientras que en el apt conf debemos agregar "false" (comparación exacta de cadenas)!
Solución
Pude arreglar / solucionar el apagado de bloqueo de 3 maneras diferentes:
Solución alternativa A
- escriba "False" en lugar de "false" en /etc/apt/apt.conf.d/50unattended-upgrades
Esta configuración es segura hasta que se proporcione una solución real porque el archivo que cambiamos aquí no se sobrescribe con una actualización de actualizaciones desatendidas. Problema: cuando se solucione la causa raíz, esto dará como resultado un apagado estancado nuevamente, así que sugiero combinar esto con la Solución B.
O: solución B
- disminuir el tiempo de espera en /etc/systemd/system/shutdown.target.wants/unattended-upgrades.service de forma predeterminada a 15 segundos:
vim /etc/systemd/system/shutdown.target.wants/unattended-upgrades.service
[Servicio]
Tipo = oneshot
ExecStart = / usr / share / desatendido-actualizaciones / desatendido-actualización-apagado
TimeoutStartSec = 15
Esta configuración NO es segura para la actualización porque el archivo que cambiamos aquí puede sobrescribirse por una actualización de actualizaciones desatendidas. Además de esto, está muy lejos de arreglar algo, pero garantizará que su sistema no espere varios minutos cuando se apaga. ¡Tenga en cuenta que después de una actualización de actualizaciones desatendidas puede que tenga que configurar esto nuevamente!
O: Corrección C (debe informarse en sentido ascendente)
- arregla / usr / share / unattended-Updates / unattended-Updades-shutdown para esperar "falso" en lugar de "Falso"
parches / usr / share / desatendido-actualizaciones / desatendido-actualización-apagado:
--- / tmp / desatendido-actualización-apagado 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 @@
# ejecutarlo
p = Ninguno
apt_pkg.init_config ()
- if apt_pkg.config.find_b ("Actualización desatendida :: InstallOnShutdown", Falso):
+ if apt_pkg.config.find_b ("Actualización desatendida :: InstallOnShutdown", falso):
env = copy.copy (os.environ)
env ["UNATTENDED_UPGRADES_FORCE_INSTALL_ON_SHUTDOWN"] = "1"
logging.debug ("iniciando actualizaciones desatendidas en modo apagado")
Conclusión
tbh solo el último es una solución real. las otras dos opciones son solo soluciones alternativas hasta que se implemente la solución real.
Esto debe hacerse en sentido ascendente y esto afecta tanto a Debian (probado en Debian Stretch) como a Ubuntu (probado en Ubuntu 16.04.1) para ambas distribuciones.
Abrí un informe de error aquí: https://bugs.launchpad.net/ubuntu/+source/unattended-upgrades/+bug/1661611