Olhando em volta para se aproximar da causa raiz
O problema parece ser o script em execução no desligamento.
Eu identifiquei o arquivo correspondente com:
find /etc/systemd -name *unattended*
que me mostra o script systemd relacionado:
/etc/systemd/system/shutdown.target.wants/unattended-upgrades.service
que me disse o script executado no desligamento:
/usr/share/unattended-upgrades/unattended-upgrade-shutdown
Investigando mais profundamente para encontrar a causa raiz
dentro desse script, há uma seção na linha 120 relacionada à seção em /etc/apt/apt.conf.d/50unattended-upgrades -> Unattended-Upgrade :: InstallOnShutdown
Linha 120 de / usr / share / upgrades autônomos / unattended-upgrade-shutdown:
if apt_pkg.config.find_b("Unattended-Upgrade::InstallOnShutdown", False):
O problema: espera que a palavra-chave "False", enquanto no apt conf, devemos adicionar "false" (comparação exata de cadeias)!
Solução
Consegui consertar / solucionar o desligamento paralisado de três maneiras diferentes:
Solução A
- escreva "False" em vez de "false" em /etc/apt/apt.conf.d/50unattended-upgrades
Essa configuração é segura para atualização até que uma correção real seja fornecida porque o arquivo que alteramos aqui não é substituído por uma atualização de atualizações autônomas. Problema: Quando a causa raiz é corrigida, isso resulta em um desligamento estagnado novamente, então sugiro combiná-lo com a Solução B.
OU: solução alternativa B
- reduza 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
[Serviço]
Tipo = oneshot
ExecStart = / usr / share / upgrades autônomos / unattended-upgrade-shutdown
TimeoutStartSec = 15
Essa configuração NÃO é segura para atualização, pois o arquivo que alteramos aqui pode ser substituído por uma atualização de atualizações autônomas. Além disso, está muito longe de consertar algo, mas garantirá que seu sistema não espere alguns minutos ao desligar. Lembre-se de que, após uma atualização de atualizações autônomas, você pode precisar defini-las novamente!
OU: Correção C (deve ser relatado upstream)
- corrija / usr / share / upgrades autônomos / shutdown autônomos para esperar "falso" em vez de "falso"
patching / usr / share / upgrades autônomos / unattended-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 @@
# executá-lo
p = nenhum
apt_pkg.init_config ()
- se apt_pkg.config.find_b ("Atualização autônoma :: InstallOnShutdown", False):
+ se apt_pkg.config.find_b ("Atualização autônoma :: InstallOnShutdown", false):
env = copy.copy (os.environ)
env ["UNATTENDED_UPGRADES_FORCE_INSTALL_ON_SHUTDOWN"] = "1"
logging.debug ("iniciando atualizações autônomas no modo de desligamento")
Conclusão
Apenas o último é uma correção real. as duas outras opções são apenas soluções alternativas até que a correção real seja implementada.
Isso precisa ser feito upstream e isso afeta o Debian (testado no Debian Stretch) e o Ubuntu (testado no Ubuntu 16.04.1) para ambas as distribuições.
Abri um relatório de erro aqui: https://bugs.launchpad.net/ubuntu/+source/unattended-upgrades/+bug/1661611