Mantenha o ssh rodando o maior tempo possível no desligamento do servidor

5

Eu tenho um servidor linux remoto com kvm pago e um serviço 'reboot on request' muito lento. Agora, quando eu reiniciar o servidor com 'sudo reboot' ssh me desconecta dentro de 3-5 segundos, mas, em seguida, servidor, por vezes, continuar em execução, eu acho, esperando por algum script rc.d desligando. Rede ainda está configurada, então eu posso até fazer ping no servidor, mas conexões ssh não podem ser estabelecidas, então, aparentemente, o sshd está inativo. Eu não posso nem cavar dentro para detectar o que está acontecendo durante o desligamento. Então, a pergunta é: como evitar que o sshd pare durante o desligamento do sistema? Eu quero o sshd rodando até o desligamento total do sistema.

    
por Alex Laskin 02.05.2012 / 17:31

1 resposta

4

Você não faz isso.

Seu sistema operacional precisa interromper todos os processos antes de desligar. Isso inclui matar suas conexões SSH.
A rede sendo "viva" é um artefato do kernel não ter parado / reiniciado ainda - Seu ping está sendo respondido pela pilha IP / ICMP. A Userland poderia ter desaparecido completamente e o kernel continuaria respondendo ao ping.

Você pode reordenar os scripts de desligamento, então sshd é eliminado mais tarde no processo (veja a documentação da sua distribuição), mas isso manterá o daemon SSH rodando por mais tempo - ele ganhou • salve sua sessão, que foi eliminada como um processo independente (é por isso que você pode parar / iniciar o sshd enquanto ainda estiver conectado - as conexões ativas não são mais “parte do daemon”). Se o seu sistema estiver se comportando normalmente, ele não permitirá logins assim que iniciar o processo de desligamento, e você não poderá efetuar login depois que sua sessão for cancelada de qualquer maneira.

    
por 02.05.2012 / 17:39