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.