ปิดเสิร์ฟเวอร์โปรเซสอย่างสุภาพ
หน้านี้นำเสนอวิธีปิดเสิร์ฟเวอร์โปรเซสที่กำลังทำงานอย่างสุภาพโดยใช้สัญญาณ
เมื่อคุณเริ่มกระบวนการเซิร์ฟเวอร์ด้วย Server.Run(Handler)
มันจะบล็อกและรอสัญญาณขาเข้า
มีสองประเภทของสัญญาณที่สามารถส่งไปยังโปรแกรมที่กำลังทำงานเพื่อให้ปิดโปรเซสอย่างสุภาพ
-
TSTP: สัญญาณนี้บอก
Server
ให้หยุดการจัดการงานใหม่ -
TERM หรือ INT: สัญญาณนี้บอก
Server
ให้สิ้นสุด (เช่น ปิด)
แนะนำให้ ส่งสัญญาณ TSTP ก่อน เพื่อหยุดการจัดการงานใหม่ และรอให้งานที่กำลังทำอยู่ทั้งหมดเสร็จก่อนส่งสัญญาณ TERM เพื่อสิ้นสุดโปรแกรม
ใช้คำสั่ง kill
เพื่อส่งสัญญาณ
kill -TSTP # หยุดการจัดการงานใหม่
kill -TERM # ปิดเสิร์ฟเวอร์
หมายเหตุ: หากสัญญาณ TERM หรือ INT ถูกส่งโดยไม่ส่งสัญญาณ TSTP Server
จะเริ่มตั้งเวลารอและรอเวลา 8 วินาทีให้ทุกๆ งานเสร็จ (เพื่อปรับการตั้งค่าเวลารอนี้, ให้ใช้การตั้งค่า ShutdownTime
) หากมีงานที่ยังไม่เสร็จภายในเวลาที่กำหนด งานจะกลับไปสถานะ รอ และจะถูกจัดการอีกครั้งเมื่อโปรแกรมเริ่มทำงานใหม่
หมายเหตุ: ปัจจุบัน Windows ไม่รองรับสัญญาณ TSTP