เมื่อฉันต้องการที่จะฆ่ากระบวนการผ่านการตรวจสอบระบบฉันนำเสนอด้วยวิธีที่รวดเร็ว 2 วิธีฆ่ากระบวนการและกระบวนการสิ้นสุด ความแตกต่างระหว่างสองสิ่งนี้คืออะไร?
เมื่อฉันต้องการที่จะฆ่ากระบวนการผ่านการตรวจสอบระบบฉันนำเสนอด้วยวิธีที่รวดเร็ว 2 วิธีฆ่ากระบวนการและกระบวนการสิ้นสุด ความแตกต่างระหว่างสองสิ่งนี้คืออะไร?
คำตอบ:
ตามคู่มือการตรวจสอบระบบคุณควรใช้ "กระบวนการสิ้นสุด" และเฉพาะในกรณีที่ล้มเหลวใช้ "กระบวนการฆ่า":
โดยปกติคุณจะยุติกระบวนการเฉพาะในกรณีที่คุณไม่สามารถจบกระบวนการตามปกติดังที่อธิบายไว้ในการสิ้นสุดกระบวนการ
ในระดับเทคนิคสิ่งนี้ทำให้ฉันคิดว่า End Process ส่ง SIGQUIT ซึ่งอนุญาตให้กระบวนการดักจับและทำการล้างถ้าจำเป็น แต่ถ้าล้มเหลว Kill Process ควรส่ง SIGKILL ซึ่งควรยุติกระบวนการอย่างรุนแรงโดยไม่มีโอกาสกู้คืน ใช้เท่าที่จำเป็น!
ผมอยากรู้มากเกินไปดังนั้นฉันเพียงแค่เรียกดูผ่านรหัสแหล่งที่มาและพบว่าที่ด้านล่างในapplication.cpp มีมากกว่ารหัสนี้ แต่ฉันคิดว่าสิ่งเหล่านี้มีความสัมพันธ์กับตัวเลือกอย่างน้อยสำหรับการตรวจสอบระบบ 3.8.2.1 ถึง 3.19.3:
ดูคำถามนี้เกี่ยวกับ Quora เกี่ยวกับสัญญาณ SIGINT, SIGTERM, SIGKILL และ SIGSTOPสำหรับคำอธิบายที่ดีเกี่ยวกับสัญญาณฆ่า / ออก / ปิด / ปิดทั้งหมดและความแตกต่างของพวกเขา