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.