2008-12-28 72 views
27

我在C/C++中使用fork()創建子進程。
當父進程結束(或由於某種原因而被終止)時,我希望所有子進程都被終止。
這是由系統自動完成的嗎?或者我必須自己做?使用fork()創建的子進程是否會在父對象被殺時自動終止?

謝謝。


預先存在類似的問題:

+0

我記得看到類似的問題:

問題與質量答案在這裏已經被討論。例如。 http://stackoverflow.com/questions/269494/how-can-i-cause-a-child-process-to-exit-when-the-parent-does – PolyThinker 2008-12-28 05:43:14

回答

32

號如果父母被殺害,孩子成爲init進程的兒童(具有處理id 1,並作爲內核的第一個用戶進程啓動)。

init進程定期檢查新的子進程,如果它們已經退出(因此釋放由它們的返回值分配的資源),就會殺死它們。 How to make child process die after parent exits?

+0

那麼這是否意味着子進程沒有異常死亡在提前終止之前,等待他們完全執行他們的代碼,然後終止? – 2016-11-24 06:47:57

相關問題