มีตัวแปร UNIX ใดบ้างที่กระบวนการลูกตายกับผู้ปกครอง?
ฉันได้ศึกษาพฤติกรรมเคอร์เนลของ Linux มาระยะหนึ่งแล้วและมันชัดเจนสำหรับฉันเสมอว่า: เมื่อกระบวนการตายเด็กทุกคนจะถูกส่งกลับไปที่initกระบวนการ (PID 1) จนกว่าพวกเขาจะตายในที่สุด อย่างไรก็ตามเมื่อเร็ว ๆ นี้มีคนที่มีประสบการณ์มากกว่าฉันด้วยเคอร์เนลบอกฉันว่า: เมื่อกระบวนการออกไปเด็กทุกคนในนั้นก็ตาย (ยกเว้นคุณใช้NOHUPในกรณีที่พวกเขากลับไปinit) ตอนนี้แม้ว่าฉันจะไม่เชื่อเรื่องนี้ฉันยังคงเขียนโปรแกรมง่าย ๆ เพื่อให้แน่ใจ ฉันรู้ว่าฉันไม่ควรพึ่งพาเวลา ( sleep) สำหรับการทดสอบเนื่องจากทุกอย่างขึ้นอยู่กับการจัดตารางกระบวนการ แต่สำหรับกรณีง่าย ๆ นี้ฉันคิดว่ามันค่อนข้างเพียงพอ int main(void){ printf("Father process spawned (%d).\n", getpid()); sleep(5); if(fork() == 0){ printf("Child process spawned (%d => %d).\n", getppid(), getpid()); sleep(15); printf("Child process exiting (%d => %d).\n", getppid(), getpid()); …