Eu instalei um (x) Ubuntu 14.04 no PC de um amigo. As atualizações automáticas estão definidas para "baixar e instalar atualizações automaticamente".
O problema é que, após alguns meses de uso, ele sem querer desliga o PC antes que a atualização dos pacotes seja concluída. Isso leva a dependências / pacotes quebrados, o que leva à atualização sendo afetada e à necessidade de executarsudo dpkg --configure -a
É possível fazer o Ubuntu aguardar a conclusão das atualizações antes do desligamento ou reinicialização do PC, como o Windows faz para garantir que nunca haverá pacotes quebrados e que o PC permaneça atualizado automaticamente?
System Settings -> Power
Respostas:
Molly-Guard é um programa exatamente para esse fim; requer que você faça uma pequena quantidade de configuração e tenha
/usr/sbin
antes/sbin
na sua$PATH
.Caso contrário, de acordo com isso, os detalhes exatos são altamente dependentes da implementação da GUI / DE. Como sabemos que seu amigo está usando o Xubuntu, isso o restringe, mas sem recompilar o Xfce com esse suporte embutido (o que criaria outros problemas), parece muito difícil.
De acordo com minha pesquisa abundante, você pode, teoricamente, substituir
/sbin/shutdown
por um script que verifique se um trabalho apt está ativo e é executadosudo shutdown -c
ousudo init 2
para cancelar um desligamento em execução ewait
sair, mas não tenho certeza de quão robusto isso seja.De acordo com isso , você pode dificultar o desligamento do usuário , em vez de conectar um script.
Por fim, conforme descrito aqui , você pode instalar
unattended-upgrades
sobre qualquer sistema que esteja usando para atualizações automáticas agora e verifique se ele sai antes do desligamento, conforme detalhado nesta resposta .Existem muitas opções, todas com níveis variáveis de confiabilidade, mas acho que a melhor, que resolve o que penso ser, até certo ponto, um problema X / Y subjacente em jogo aqui, é esta:
Use
crontab
para fazer o computador dele funcionardpkg --configure -a
a cada inicialização.@ LovesTha: Para o seu propósito, eu recomendo
unattended-upgrades
, ou talvez Molly-Guard.fonte
Introdução
O script abaixo usa polling orientado a interrupção para mensagens específicas do dbus e, sempre que vir solicitação de desligamento / reinicialização, testará se um gerenciador de pacotes como
dpkg
ouapt
está em execução. Se eles estiverem em execução, a solicitação de desligamento será cancelada.Configuração
Como você mencionou que seu amigo não quer tocar na linha de comando, você precisará ssh na máquina dele ou virá e instalará isso manualmente.
Configuração manual
mkdir $HOME/bin
preventShutdown.sh
chmod +x $HOME/bin/preventShutdown.sh
para fazer isso.desktop
arquivo no$HOME/.config/autostart
Configuração alternativa
Adicione o script como um aplicativo de inicialização.
Origem do Script
fonte
Para citar Einstein:
portanto, não há 100% de garantia contra a estupidez humana, mas você pode dificultar que os não-Einsteins quebrem as coisas:
Ativando atualizações automáticas ao desligar .
Explique que os computadores não são martelos, nem pregos, mas equipamentos frágeis e inteligentes que precisam de dois tipos de alimentos: eletricidade e atualizações.
Alternativamente,
Como alternativa:
• use o Remmina para manter as coisas funcionando sem problemas
fonte