Arresto Grazioso del Processo del Server

Questa pagina introduce come arrestare graziosamente un processo del server in esecuzione utilizzando i segnali.

Quando si avvia l'elaborazione del server con Server.Run(Handler), si bloccherà e attenderà l'arrivo dei segnali.

Ci sono due tipi di segnali che possono essere inviati a un programma in esecuzione per arrestare graziosamente il processo.

  • TSTP: Questo segnale dice al Server di smettere di gestire nuovi compiti.
  • TERM o INT: Questo segnale dice al Server di terminare (cioè, spegnersi).

Si raccomanda di inviare prima il segnale TSTP per smettere di gestire nuovi compiti e attendere il completamento di tutti i compiti in corso prima di inviare il segnale TERM per terminare il programma.

Usa il comando kill per inviare i segnali.

kill -TSTP  # Smetti di gestire nuovi compiti

kill -TERM  # Spegni il server

Nota: Se il segnale TERM o INT viene inviato senza inviare il segnale TSTP, il Server avvierà un timer e attenderà 8 secondi affinché tutti i lavoratori completino (per personalizzare questa durata di timeout, utilizza la configurazione ShutdownTime). Se ci sono lavoratori non finiti entro quel lasso di tempo, i compiti torneranno allo stato in sospeso e verranno gestiti nuovamente al riavvio del programma.

Nota: Attualmente, Windows non supporta il segnale TSTP.