Por quanto tempo os daemons precisam sair quando o sinal de desligamento do servidor é recebido?

1

Como estamos desenvolvendo um conjunto complexo de serviços no Linux, desenvolvemos uma ferramenta que os inicia um por um. Uma das muitas considerações para criar uma ferramenta desse tipo foi a ordem em que os itens podem ser iniciados, mas também uma maneira de garantir que, na morte de um daemon, o daemon reinicie automaticamente. Existem também parâmetros de servidor que são compartilhados entre todos os serviços.

No entanto, tenho um problema agora em que desligar esse sistema leva tempo. Pode levar até 10 segundos para desligar tudo.

O que eu estou querendo saber é: Por quanto tempo um script definido em /etc/init.d/... pode levar a daemons de desligamento é controlado?

Embora eu imaginasse que, se tivéssemos que dividir todos os daemons em pacotes separados (já que os scripts de inicialização podem agora incluir uma lista de dependências ...), teríamos o mesmo problema. Então, neste momento, preferimos manter as coisas como estão ...

Existe uma quantidade de tempo bem definida / conhecida que um desligamento deve levar no máximo para ser agradável a todos os daemons?

    
por Alexis Wilke 14.05.2016 / 06:00

2 respostas

5

Is there a well defined/known amount of time that a shutdown must take at the most?

Não.

    
por 14.05.2016 / 07:27
0

Como agora testei um desligamento de vários daemons em um sistema que executa com o systemd, posso atestar que o tempo limite está claramente definido para cada daemon.

Pelo que eu posso dizer, também se aplica a daemons que ainda são iniciados / interrompidos com um script SysV. Quando o Cassandra ainda estiver trabalhando em seus arquivos, fazer um systemctl restart cassandra não funcionará como esperado. Para esses serviços, você provavelmente desejará fazer um systemctl stop cassandra e, assim que tiver certeza de que foi interrompido, faça systemctl start cassandra .

Então ... Você pode definir / alterar o TimeoutStopSec paramter em uma base por daemon. Isso permite uma grande granularidade!

[Unit]
...
TimeoutStopSec=120

E você pode alterar o padrão do sistema: DefaultTimeoutStartSec (o que provavelmente não é aconselhável ...)

Há outro tempo importante, que é o recurso de reinicialização (mostrado no último link). É muito importante porque o systemd deseja reiniciar um processo em 100ms por padrão !!! Então, se seu daemon demorar até 2 minutos para desligar, não funcionará direito ...

    
por 31.08.2016 / 05:15