Desligamento Gracioso do Processo do Servidor
Esta página apresenta como desligar graciosamente um processo do servidor em funcionamento usando sinais.
Ao iniciar o processamento do servidor com Server.Run(Handler)
, ele irá bloquear e aguardar sinais de entrada.
Existem dois tipos de sinais que podem ser enviados para um programa em execução para desligar graciosamente o processo.
-
TSTP: Este sinal diz ao
Servidor
para parar de lidar com novas tarefas. -
TERM ou INT: Este sinal diz ao
Servidor
para terminar (ou seja, desligar).
É recomendável enviar primeiro o sinal TSTP para parar de lidar com novas tarefas, e aguardar todas as tarefas em andamento serem concluídas antes de enviar o sinal TERM para encerrar o programa.
Use o comando kill
para enviar sinais.
kill -TSTP # Parar de lidar com novas tarefas
kill -TERM # Desligar o servidor
Nota: Se o sinal TERM ou INT for enviado sem enviar o sinal TSTP, o Servidor
iniciará um temporizador e aguardará 8 segundos para que todos os trabalhadores concluam (para personalizar essa duração do tempo limite, use a configuração ShutdownTime
). Se houver algum trabalhador inacabado dentro desse período de tempo, as tarefas voltarão ao estado pendente e serão tratadas novamente quando o programa reiniciar.
Nota: Atualmente, o Windows não suporta o sinal TSTP.