Quando é necessário reiniciar?

26

Além de atualizar o kernel, há alguma mudança em um sistema Linux que requer uma reinicialização? Eu sei que há situações em que uma reinicialização facilita as coisas, mas há alguma que não possa ser realizada, exceto com uma reinicialização?

Para esclarecer: estou pensando em um sistema típico de desktop ou servidor que não está sofrendo de um mau funcionamento de hardware.

    
por Mark 04.04.2014 / 10:35

3 respostas

43

Algumas coisas vêm à mente:

  • Recupere-se de um pânico do kernel

    Um pânico do kernel, por definição, não pode ser recuperado sem reiniciar o kernel.

  • Recupere-se de interrupções que deixam você sem acesso ao terminal

    Se o sistema não estiver respondendo e você não conseguir enviar comandos para a recuperação, a única coisa que você pode fazer é reinicializar. Normalmente, você gostaria de evitar o ciclo de energia manual. Para esses tipos de situações, o kernel do Linux tem suporte a Magic SysRq , que pode ser usado para reinicializar a máquina em uma emergência. / p>

    Contanto que a opção CONFIG_MAGIC_SYSRQ tenha sido habilitada na configuração do kernel, e o kernel.sysrq sysctl está habilitada, você pode enviar comandos diretamente para o kernel com combinações de teclas mágicas SysRq:

    Note que Alt + SysRq abaixo significa pressione e segure Alt , então pressione e segure segure SysRq (normalmente a tecla PrintScrn ).

    1. Alt + SysRq + r : recupera o controle do teclado
    2. Alt + SysRq + e : envia SIGTERM para todos os processos, exceto init , dando a eles uma chance de finalizar graciosamente
    3. Alt + SysRq + i : envia SIGKILL para todos os processos, exceto init , forçando-os a finalizar
    4. Alt + SysRq + s : tentativa de sincronizar todos os sistemas de arquivos montados
    5. Alt + SysRq + u : remontar todo o sistema de arquivos somente leitura
    6. Alt + SysRq + b : reboot ou

      Alt + SysRq + o : desligamento

    Um mnemônico para as combinações de teclas mágicas do SysRq para tentar uma reinicialização normal é:

    " R eboot E ven I f S sistema U titerly B roke "

    Para servidores headless, existe até um destino iptables que permite sequências SysRq remotas através de uma rede.

  • Recuperar do estado não inicializável

    Se o sistema já foi levado a um estado em que uma inicialização normal não é possível (por exemplo, como resultado de uma atualização do sistema com falha, sistema de arquivos corrompido etc.), a única maneira de acessar um console de recuperação no sistema pode reinicializar usando as opções adequadas de inicialização.

  • Altere os parâmetros do kernel em tempo de inicialização

    Alguns parâmetros do kernel (por exemplo, audit para ativar / desativar a auditoria do kernel) só podem ser definido quando o kernel é carregado no momento da inicialização.

por 04.04.2014 / 11:40
2

Há duas ocasiões em que consigo pensar onde gostaria de reinicializar:

  1. Quando preciso ter certeza de que o sistema pode inicializar no estado adequado.

    Uma vez trabalhei em um sistema que tinha algum daemon configurado enquanto estava em execução. Depois que ele foi executado por alguns anos, uma falha de energia fez com que ele reinicializasse, mas o daemon não fazia parte do processo de inicialização e ninguém tinha a menor ideia de como ele havia sido configurado anos antes. O sistema ficou inativo durante dias, enquanto descobríamos como reconfigurá-lo.

    Na verdade, a reinicialização é a única maneira de saber com certeza se o sistema será reiniciado corretamente após uma falha de energia.

  2. Quando uma biblioteca do sistema foi atualizada.

    Digamos que uma grande falha de segurança tenha sido descoberta em uma biblioteca compartilhada com muitos aplicativos / servidores no sistema. Você pode atualizar a biblioteca sem reinicializar, mas quantos processos ainda estão sendo executados com a biblioteca insegura carregada? Você pode reiniciar meticulosamente qualquer coisa usando a biblioteca antiga (se conseguir descobrir), mas isso é propenso a erros e pode demorar mais do que apenas reinicializar.

    A reinicialização é a melhor maneira de garantir que todos os processos em execução ainda não estejam usando a biblioteca antiga com bugs.

por 05.04.2014 / 00:46
0

Se você está planejando mudanças na configuração do software e assumindo um hardware perfeitamente funcional (eu ainda não vi isso) e software livre de bugs (você sabe ...), então apenas um bug no kernel ou um driver seria forçá-lo a reiniciar. :)

Além disso ... Não tenho certeza se seria possível substituir init sem alternar para o modo de usuário único e fazer alguma mágica que não seja essencialmente diferente de uma reinicialização.

    
por 04.04.2014 / 11:17

Tags