Olhando em volta para se aproximar da causa raiz
O problema parece ser o script sendo executado no desligamento.
Identifiquei o arquivo correspondente com:
find /etc/systemd -name *unattended*
que me dá o script systemd relacionado:
/etc/systemd/system/shutdown.target.wants/unattended-upgrades.service
que então me disse que o script foi executado no desligamento:
/usr/share/unattended-upgrades/unattended-upgrade-shutdown
Investigando mais profundamente para encontrar a causa raiz
dentro deste script há uma seção na linha 120 relacionada à seção em /etc/apt/apt.conf.d/50unattended-upgrades - > Atualização Unattended :: InstallOnShutdown
Linha 120 de / usr / share / atualizações autônomas / autônomo-upgrade-shutdown:
if apt_pkg.config.find_b("Unattended-Upgrade::InstallOnShutdown", False):
O problema: ele espera a palavra-chave "False" enquanto no apt conf deveríamos adicionar "false" (comparação exata de string)!
Solução
Consegui corrigir / solucionar o encerramento de paralisação de três maneiras diferentes:
Solução alternativa A
- escreva "False" em vez de "false" em /etc/apt/apt.conf.d/50unattended-upgrades
Esta configuração é atualizada com segurança até que uma correção real seja fornecida, porque o arquivo que alteramos aqui não é sobrescrito por uma atualização de upgrades autônomos. Problema: Quando a causa raiz é corrigida, isso resultará em um desligamento paralisante novamente, então sugiro combinar isso com a Solução Alternativa B.
OU: solução alternativa B
- diminua o tempo de espera em /etc/systemd/system/shutdown.target.wants/unattended-upgrades.service do padrão para 15 segundos:
vim /etc/systemd/system/shutdown.target.wants/unattended-upgrades.service
[Service] Type=oneshot ExecStart=/usr/share/unattended-upgrades/unattended-upgrade-shutdown TimeoutStartSec=15
Essa configuração NÃO é atualizada porque o arquivo que alteramos aqui pode ser substituído por uma atualização de upgrades autônomos. Além disso, está muito longe de consertar algo, mas garantirá que o seu sistema não esperará alguns minutos ao desligar. Lembre-se de que, após uma atualização de upgrades autônomos, talvez seja necessário definir isso novamente.
OU: Correção C (tem que ser reportado para o upstream)
- corrija / usr / share / upgrades automáticos / upgrades autônomos-shutdown para esperar "false" em vez de "False"
aplicando patches / usr / share / atualizações autônomas / autônomo-upgrade-shutdown:
--- /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 @@ # run it p = None 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("starting unattended-upgrades in shutdown mode")
Conclusão
tbh apenas o último é uma correção real. as outras duas opções são apenas soluções alternativas até que a correção real seja implementada.
Isto tem que ser feito no upstream e isto afeta tanto o Debian (testado no Debian Stretch) quanto o Ubuntu (testado no Ubuntu 16.04.1) para ambas as distribuições.
Eu abri um relatório de bug aqui: link