Грациозное завершение процесса сервера
Эта страница представляет, как грациозно завершить работающий процесс сервера с помощью сигналов.
Когда вы запускаете обработку сервера с помощью Server.Run(Handler)
, он будет блокироваться и ожидать поступления сигналов.
Есть два типа сигналов, которые могут быть отправлены работающей программе для грациозного завершения процесса.
-
TSTP: Этот сигнал сообщает
Server
остановить обработку новых задач. -
TERM или INT: Этот сигнал сообщает
Server
о прекращении работы (т.е. завершении).
Рекомендуется сначала отправить сигнал TSTP, чтобы прекратить обработку новых задач, и дождаться завершения всех выполняемых задач перед отправкой сигнала TERM для завершения программы.
Используйте команду kill
для отправки сигналов.
kill -TSTP # Прекратить обработку новых задач
kill -TERM # Выключить сервер
Примечание: Если сигнал TERM или INT будет отправлен без отправки сигнала TSTP, Server
запустит таймер и будет ждать 8 секунд, чтобы все задания завершились (для настройки этой продолжительности времени ожидания используйте конфигурацию ShutdownTime
). Если есть незавершенные задачи в течение этого времени, задания вернутся в состояние ожидания и будут обработаны снова при перезапуске программы.
Примечание: В настоящее время Windows не поддерживает сигнал TSTP.