ฉันควรส่งสัญญาณไปยังกระบวนการปิดระบบอย่างสง่างามในลำดับใด
ในความคิดเห็นเกี่ยวกับคำตอบของคำถามอื่นผู้แสดงความคิดเห็นกล่าวว่า: อย่าใช้ kill -9 เว้นแต่จำเป็นจริงๆ! SIGKILL ไม่สามารถติดกับดักได้ดังนั้นโปรแกรมที่ถูกฆ่าจึงไม่สามารถรันขั้นตอนการปิดระบบใด ๆ เพื่อลบไฟล์ชั่วคราว ขั้นแรกให้ลองใช้ HUP (1) จากนั้น INT (2) จากนั้นจึง QUIT (3) ฉันเห็นด้วยในหลักการเกี่ยวกับSIGKILLแต่ส่วนที่เหลือเป็นข่าวสำหรับฉัน เนื่องจากสัญญาณเริ่มต้นที่ส่งมาkillคือSIGTERMฉันคาดว่าจะเป็นสัญญาณที่คาดหวังมากที่สุดสำหรับการปิดกระบวนการโดยพลการอย่างสง่างาม นอกจากนี้ฉันพบว่ามีการSIGHUPใช้ด้วยเหตุผลที่ไม่ยุติเช่นการบอก daemon ว่า "อ่านไฟล์ config ของคุณอีกครั้ง" และสำหรับฉันแล้วดูเหมือนว่าSIGINT(การขัดจังหวะแบบเดียวกับที่คุณมักจะได้รับจาก Ctrl-C ใช่ไหม) ไม่ได้รับการสนับสนุนอย่างกว้างขวางเท่าที่ควรหรือยุติอย่างไม่น่าเคารพ ระบุว่าSIGKILLเป็นทางเลือกสุดท้าย - คุณควรส่งสัญญาณใดและในลำดับใดไปยังกระบวนการตามอำเภอใจเพื่อที่จะปิดมันลงอย่างสง่างามที่สุด โปรดยืนยันคำตอบของคุณพร้อมข้อมูลสนับสนุน (นอกเหนือจากความชอบส่วนตัวหรือความคิดเห็น) หรือข้อมูลอ้างอิงหากทำได้ หมายเหตุ: ฉันสนใจแนวทางปฏิบัติที่ดีที่สุดซึ่งรวมถึงการพิจารณา bash / Cygwin เป็นพิเศษ แก้ไข:จนถึงตอนนี้ดูเหมือนจะไม่มีใครพูดถึง INT หรือ QUIT และมีการกล่าวถึง HUP อย่าง จำกัด …