Tắt dần quá trình của máy chủ

Trang này giới thiệu cách tắt một quá trình máy chủ đang hoạt động một cách lịch sự bằng cách sử dụng các tín hiệu.

Khi bạn bắt đầu quá trình máy chủ bằng Server.Run(Handler), nó sẽ chặn và đợi tín hiệu đến.

Có hai loại tín hiệu có thể được gửi đến một chương trình đang chạy để kết thúc quá trình một cách lịch sự.

  • TSTP: Tín hiệu này cho biết cho Server ngừng xử lý các công việc mới.
  • TERM hoặc INT: Tín hiệu này cho biết cho Server chấm dứt (tức là, tắt máy chủ).

Nên gửi tín hiệu TSTP trước để ngừng xử lý các công việc mới, và đợi cho tất cả các công việc đang diễn ra hoàn thành trước khi gửi tín hiệu TERM để kết thúc chương trình.

Sử dụng lệnh kill để gửi các tín hiệu.

kill -TSTP  # Ngừng xử lý các công việc mới

kill -TERM  # Tắt máy chủ

Chú ý: Nếu tín hiệu TERM hoặc INT được gửi mà không gửi tín hiệu TSTP trước, Server sẽ bắt đầu một bộ đếm thời gian và đợi trong 8 giây để cho tất cả các công nhân hoàn thành (để tùy chỉnh thời gian đếm ngược này, sử dụng cấu hình ShutdownTime). Nếu có bất kỳ công nhân nào chưa hoàn thành trong khoảng thời gian đó, các công việc sẽ quay trở lại trạng thái đang chờ và được xử lý lại khi chương trình khởi động lại.

Chú ý: Hiện tại, Windows không hỗ trợ tín hiệu TSTP.