4
กระบวนการพื้นหลังได้รับ SIGHUP เมื่อออกจากระบบหรือไม่
นี่คือการติดตามคำถามนี้ ฉันได้ทำการทดสอบเพิ่มเติม ดูเหมือนว่ามันจะไม่สำคัญว่าสิ่งนี้จะทำที่คอนโซลทางกายภาพหรือผ่านทาง SSH สิ่งนี้จะไม่เกิดขึ้นกับ SCP เท่านั้น cat /dev/zero > /dev/nullฉันยังทดสอบกับ พฤติกรรมเหมือนกันทุกประการ: เริ่มต้นกระบวนการในพื้นหลังโดยใช้&(หรือวางไว้ในพื้นหลังหลังจากที่เริ่มใช้CTRL-Zและbg); นี้จะทำโดยไม่ต้องใช้nohup ออกจากระบบ. เข้าสู่ระบบอีกครั้ง initกระบวนการนี้ยังคงมีการทำงานอย่างมีความสุขและตอนนี้เด็กโดยตรงของ ฉันสามารถยืนยันได้ว่าทั้ง SCP และ CAT หยุดทำงานทันทีหากส่งSIGHUP; kill -HUPผมทดสอบนี้โดยใช้ ดังนั้นดูเหมือนว่า SIGHUP จะไม่ถูกส่งเมื่อออกจากระบบอย่างน้อยไปยังกระบวนการพื้นหลัง (ไม่สามารถทดสอบด้วยเบื้องหน้าด้วยเหตุผลที่ชัดเจน) สิ่งนี้เกิดขึ้นกับฉันในตอนแรกด้วยคอนโซลบริการของ VMware ESX 3.5 (ซึ่งใช้ RedHat) แต่ฉันสามารถทำซ้ำได้บน CentOS 5.4 คำถามคืออีกครั้ง: ไม่ควรส่ง SIGHUP ไปยังกระบวนการแม้ว่าพวกเขาจะทำงานในพื้นหลังเมื่อออกจากระบบ? ทำไมสิ่งนี้ไม่เกิดขึ้น? แก้ไข ฉันตรวจสอบด้วยstraceตามคำตอบของ Kyle ตามที่ฉันคาดไว้กระบวนการจะไม่ได้รับสัญญาณใด ๆเมื่อออกจากเชลล์ที่เปิดตัว สิ่งนี้เกิดขึ้นเมื่อใช้คอนโซลของเซิร์ฟเวอร์และผ่าน SSH