2011-01-28 38 views

回答

1

這可能是孩子是殭屍。

子進程退出後,進入Z(殭屍)狀態。這個狀態的存在是爲了保持孩子的退出狀態,直到孩子的父進程能夠檢索它,並且防止孩子的PID被重用,直到父母被告知孩子退出。

通過調用系統調用系列調用之一,通知父進程已退出子進程。通常,這是響應於SIGCHLD信號完成的。一旦父母完成了這一步,孩子的PID將被釋放,殭屍進程將消失。 (或者,如果父進程退出,則其所有未完成的子進程將重新設置爲init,退出時它們將調用waitpid())。

0

父進程是否等待子進程的退出狀態?你是否嘗試過從wait()返回的值上的WIFSIGNALED()和WTERMSIG()宏,以查看子節點是否被信號終止,如果是,哪一個?

相關問題