Ao instalar determinadas atualizações (por exemplo, um novo kernel) no Ubuntu Desktop, você recebe uma indicação de que é necessário reiniciar (no Lucid, o ícone de logout fica vermelho).
Como posso verificar, na linha de comando, se um servidor Ubuntu requer uma reinicialização?
Eu poderia esperar por 'Reinicialização do sistema necessária' /etc/motd
, mas gostaria de uma solução mais elegante. Além disso, quero uma solução que funcione em versões mais antigas, por exemplo, Hardy (8.04 LTS).
command-line
package-management
Marius Gedminas
fonte
fonte
Respostas:
Você pode simplesmente verificar se o arquivo
/var/run/reboot-required
existe ou não.Por exemplo, qualquer uma dessas opções diria "não existe esse arquivo" ou "arquivo não encontrado" se você não precisar reinicializar; caso contrário (se precisar reinicializar), o arquivo existiria e esses comandos mostrariam informações sobre o arquivo:
Em um script bash, você pode usar:
fonte
/var/run/reboot-required.pkgs
listará os pacotes que requerem a reinicialização.No pacote debian-goodies há um comando chamado
checkrestart
que é bastante útil. Sua saída pode ajudar a evitar uma reinicialização completa.Ele informa quais aplicativos em execução carregaram bibliotecas compartilhadas que foram atualizadas enquanto o aplicativo estava em execução. Você então reinicia os aplicativos e serviços manualmente e evita uma reinicialização completa. Porém, não ajuda com atualizações do kernel.
fonte
Normalmente, se o arquivo
existe, você deve reiniciar. Você pode ver se esse arquivo está lá usando este comando simples no gnome-terminal.
fonte
Assim como os métodos mais diretos escritos por outras pessoas, há uma indicação útil se você usar byobu - um conjunto de scripts para tornar a tela do GNU um pouco mais amigável. Ele mostra um conjunto de informações na parte inferior da tela e pode incluir se uma reinicialização é necessária - além de atualizações disponíveis, tempo, tempo de atividade, memória usada ...
Nesta captura de tela, você pode ver
199!
na linha inferior, com o fundo vermelho, que existem 199 atualizações disponíveis. A!!
significa que algumas são atualizações de segurança . O menu em primeiro plano está selecionando quais notificações de status devem ser exibidas.Se uma reinicialização for necessária, isso será indicado pelo símbolo
(R)
exibido na barra inferior com texto em branco sobre fundo azul. Mais detalhes e outros indicadores podem ser lidos na página do manual byobu .fonte
O
/etc/motd
arquivo obtém suas informações sobre se uma reinicialização é necessária a partir do/var/run/reboot-required
arquivo.Você pode verificar o conteúdo desse arquivo no terminal usando o
cat /etc/motd
comandofonte
Se você possui os pacotes reboot-notifier ou update-notifier-common instalados, obtém os arquivos / var / run / reboot-required e /var/run/reboot-required.pkgs
O reboot-notifier é mais recente no Ubuntu Wily e Xenial. Extensão do Debian, mas em jessie-backports
update-notifier-common É mais antigo, em todas as versões do Ubuntu, incluindo Xenial e Debian Wheezy. Não no Debian Stretch ou Jessie.
(Há alguns antecedentes do pacote reboot-notifier em https://feeding.cloud.geek.nz/posts/introducing-reboot-notifier/ )
Se você não tiver esses pacotes instalados, poderá comparar a versão do pacote linux instalado, com a versão em execução:
Você pode ver aqui que o kernel instalado mais recente é 3.16.7-ckt20-1 + deb8u4, mas o kernel em execução é 3.16.7-ckt20-1 + deb8u3. Portanto, este sistema precisa de uma reinicialização. O u4 vs u3 logo no final.
Pode ser necessário rolar a caixa acima. No / proc / version, é a versão próxima ao final da linha que importa.
A alteração muito pequena no código da versão é típica de uma atualização do kernel de segurança Debian.
needrestart
Outra opção é instalar o
needrestart
pacote.Parece funcionar mesmo que o needrestart tenha sido instalado após a atualização do kernel.
fonte
dpkg-query: no packages found matching linux-image-*
Unknown option: k
no Ubuntu 14.04.Adicionei o seguinte ao meu arquivo .bash-aliases:
Parecia mais simples do que instalar um pacote para esta tarefa relativamente simples. Então eu apenas corro:
fonte
Solução do pobre homem:
(Aviso: os três casos de colchetes com espaço em branco no interior devem ser "[<espaço> <guia>]".)
fonte
Não é uma resposta para a pergunta, mas uma ressalva sobre várias das respostas: não
/var/run/reboot-required
é uma fonte confiável de se uma reinicialização é realmente necessária ou não.Teste simples: quando um novo kernel estiver disponível, instale-o, reinicie. Após a reinicialização, corra
apt autoremove
para se livrar de alguns kernels antigos e desnecessários. Depois de executá-lo, ele indicará que é necessária uma reinicialização, o que é um absurdo completo.fonte