Por que o Ubuntu requer reinicialização para concluir as atualizações?

15

Ouvi dizer que as máquinas Linux podem funcionar por meses sem reiniciar. Por que então o Ubuntu diz "Reiniciar necessário para concluir as atualizações ..." depois de instalar as atualizações?

Os usuários de Linux e UNIX se gabam de como não reiniciaram seus sistemas desde que George Bush Sr. foi presidente.

http://www.tested.com/news/feature/1141-how-often-do-you-really-need-to-reboot-your-pc/

Roland
fonte
3
A maioria das pessoas diz que está executando sistemas terrivelmente vulneráveis, mas não está conectada à Internet ou está atrás de muitos firewalls.
perfil completo de Zoredache

Respostas:

12

O que você leu era verdade. Muitos administradores se gabam do tempo de atividade de suas máquinas. Pode ser dias, meses ou até anos.
No entanto, o que você precisa saber é que essas máquinas não são seus sistemas de desktop comuns. Eles são máquinas de servidor especializadas.

A primeira coisa sobre eles, eles raramente executam o X11. A maioria dos sistemas de servidor geralmente sempre estará apenas nos terminais. Portanto, uma atualização no XServer não importa.
Segundo, como Karthik apontou, uma atualização para o X Server requer apenas que você reinicie o X, não a máquina inteira. Portanto, seu tempo de atividade ainda permanece.

Outro ponto muito importante é que os sistemas de servidor não atualizam para a versão mais recente do Kernel, à medida que é lançada. No Ubuntu, você provavelmente está usando a versão 3.2 no momento. No meu Arch System, estou usando a versão 3.6, mas muitos desses sistemas com longos períodos de atividade ainda estão provavelmente em algum lugar na linha 2.xx, embora completamente seguros com patches de backport.

Todas as atualizações nesses sistemas são feitas apenas no local. As atualizações são testadas primeiro em uma máquina de teste e, após um teste completo, para garantir que nada ocorra e que não seja necessária uma reinicialização para implementá-la, elas são atualizadas pelos administradores.

Você também pode fazer o mesmo no seu sistema Ubuntu. Mas esqueça as atualizações automatizadas. Faça um pouco de teste e tente fazer suas atualizações no local. Até Kernels podem ser trocados a quente. No entanto, é preciso muita habilidade e conhecimento para realizá-lo com sucesso sempre.

darnir
fonte
1
Não é tão difícil assim. Basta usar o ksplice. ksplice.com/pricing
Zoredache
Eu mencionei isso a partir do ponto de executar todo o processo manualmente, não com nenhuma ferramenta de automação.
darnir
8

Este é o caso SOMENTE se o próprio kernel do linux for atualizado. Todos os outros tipos de atualizações são aplicados diretamente. O kernel não pode ser substituído enquanto estiver em execução e, portanto, precisa ser reinicializado.

Uma atualização do kernel deve ocorrer raramente durante atualizações regulares e geralmente é feita apenas durante os ciclos de atualização (12.04-12.10, etc)

Você pode optar por não reiniciar, ele continuará usando o Kernel antigo.

Edit : O hotswapping do kernel pode ser feito para impedir a reinicialização em teoria, mas não parece ser remotamente trivial.

Karthik T
fonte
2
Acabei de fazer uma atualização e ela atualizou alguns arquivos xserver. No entanto, o sistema operacional diz que é necessário reiniciar para concluir as atualizações. Além disso, tenho certeza de que li em algum lugar que os sistemas operacionais Linux podem continuar em execução sem reiniciar, mesmo após uma atualização do kernel.
Roland
7
xserver TECNICAMENTE não precisa ser reiniciado, basta reiniciar o xserver :). É apenas uma instrução mais simples para dizer reiniciar a máquina. Em muitos casos, o logout também pode ser suficiente.
Karthik T
$ cat /var/run/reboot-required.pkgsoutputs libssl1.0.0- o libssl faz parte do kernel?
Dan Dascalescu
3
@DanDascalescu Não deve ser, e se você me perguntar, uma reinicialização não é obrigatória ao atualizar o openssl / libssl, desde que você reinicie todos os programas / serviços que usam o openssl / libssl. Eu acredito que os mantenedores do pacote apenas pegaram o caminho mais fácil e o jogaram com segurança, exigindo uma reinicialização em vez de passar por todos os processos em execução, verificando quais usam o libssl e fazendo adivinhações para mapear os processos para nomes de serviço iniciantes e / ou sysvinit .
blubberdiblub