Apagado seguro del proceso del servidor

Esta página presenta cómo apagar de manera segura un proceso del servidor en funcionamiento utilizando señales.

Cuando se inicia el procesamiento del servidor con Server.Run(Handler), se bloqueará y esperará señales entrantes.

Hay dos tipos de señales que se pueden enviar a un programa en ejecución para apagar de manera segura el proceso.

  • TSTP: Esta señal le indica al Server que deje de manejar nuevas tareas.
  • TERM o INT: Esta señal le indica al Server que se termine (es decir, se apague).

Se recomienda enviar primero la señal TSTP para dejar de manejar nuevas tareas, y esperar a que todas las tareas en curso se completen antes de enviar la señal TERM para terminar el programa.

Utilice el comando kill para enviar señales.

kill -TSTP  # Dejar de manejar nuevas tareas

kill -TERM  # Apagar el servidor

Nota: Si la señal TERM o INT se envía sin enviar la señal TSTP, el Server iniciará un temporizador y esperará 8 segundos para que todos los trabajadores completen (para personalizar esta duración de tiempo de espera, use la configuración ShutdownTime). Si hay trabajadores sin terminar dentro de ese período de tiempo, las tareas volverán al estado pendiente y se manejarán nuevamente al reiniciar el programa.

Nota: Actualmente, Windows no admite la señal TSTP.