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