Como garantir que o sshd seja o último serviço a ser interrompido durante o desligamento?

8

Eu notei que quando eu emito um comando reboot , minha conexão SSH é imediatamente fechada no CentOS 7. Isso não significa que o servidor tenha sido reinicializado, já que eu ainda consigo pingar.

Parece que o systemd está matando o sshd cedo demais. Às vezes, um serviço fica paralisado ou fica lento, e não consigo mais fazer login para verificar o que está errado, mesmo que o servidor esteja funcionando.

Existe uma maneira de dizer ao systemd para apenas matar o sshd depois que todos os outros serviços estiverem inativos?

    
por Giovanni Tirloni 11.05.2015 / 15:57

3 respostas

1

Mesmo se você pudesse garantir que o SSH seja o último serviço a ser encerrado, seria inútil, porque você perderá a conexão assim que os serviços de rede forem interrompidos.

Uma máquina Linux que inicializa todos os serviços em uma ordem predeterminada: primeiro os serviços mais vitais, o syslog, o firewall, a rede e, eventualmente, os aplicativos que requerem acesso à rede (servidor web, servidor SSH etc. ). Ao desligar, esses serviços são interrompidos na ordem inversa. Então você perderá a conexão SSH quase imediatamente.

O fato de o SSH já estar inativo enquanto você ainda pode fazer ping na máquina remota é normal.

    
por 11.02.2016 / 13:22
0

Isso é meio que um hack, mas que tal adicionar algo como:

ExecStopPre=sleep 60

para a seção "[Serviço]" de /usr/lib/systemd/system/sshd.service ? Isso não garantiria a ordem dos desligamentos, mas se você pudesse tolerar um tempo de desligamento mais longo, ele poderia permitir que você mantivesse o seu shell ativo por tempo suficiente para verificar se tudo o mais estava terminado, ou para fazer uma busca rápida. Não tenho certeza se isso é útil no caso geral, já que provavelmente é tarde demais para abortar um desligamento problemático nesse estágio, mas pode ser útil em uma situação em que você tenha um problema recorrente durante o desligamento que está tentando depurar.

    
por 16.07.2015 / 19:12
-5

Eu não tenho certeza do que você está procurando aqui, mas a primeira coisa em que você vai pensar é em renegociar o processo.

Então, no seu caso, você pode renunciar ao processo pai sshd:

       renice PRIO_MAX -p pid-of-sshd
    
por 05.10.2015 / 17:49