分叉的子進程正在工作,沒有正常退出(被殺死)。發生這種情況的可能情況是什麼?兒童進程不能正常退出的原因是什麼?
1
A
回答
1
這可能是孩子是殭屍。
子進程退出後,進入Z
(殭屍)狀態。這個狀態的存在是爲了保持孩子的退出狀態,直到孩子的父進程能夠檢索它,並且防止孩子的PID被重用,直到父母被告知孩子退出。
通過調用系統調用系列調用之一,通知父進程已退出子進程。通常,這是響應於SIGCHLD
信號完成的。一旦父母完成了這一步,孩子的PID將被釋放,殭屍進程將消失。 (或者,如果父進程退出,則其所有未完成的子進程將重新設置爲init
,退出時它們將調用waitpid()
)。
0
父進程是否等待子進程的退出狀態?你是否嘗試過從wait()返回的值上的WIFSIGNALED()和WTERMSIG()宏,以查看子節點是否被信號終止,如果是,哪一個?
相關問題
- 1. 兒童的ID不能正常工作
- 2. Qt - MDI兒童不能正常關閉
- 3. 我的Mozilla Firefox是有點兒車。可能是什麼原因?
- 4. 退格不能在PHP中工作的原因是什麼?
- 5. 爲什麼我的線程不能正常退出?
- 6. 進程正常退出
- 7. 網址無法正常處理。可能是什麼原因?
- 8. java.lang.RuntimeException:主線程循環意外退出,可能是什麼原因?
- 9. 流不可寫入異常的可能原因是什麼?
- 10. 獲取退出狀態值的原因是什麼-1
- 11. JVM退出代碼1073807364的原因是什麼?
- 12. 什麼是死鎖的常見原因?
- 13. Classformat異常的原因是什麼?
- 14. 爲什麼epmd進程不會退出?
- 15. 這是什麼原因爲stackoverflow異常?
- 16. 是什麼原因
- 17. JasperException的可能原因是什麼
- 18. 這個輸出的原因是什麼?
- 19. stringstream輸出的原因是什麼?
- 20. 使用Forever;我怎樣才能找出兒童進程的PID?
- 21. CMOS_WRITE無法正常工作的原因是什麼?
- 22. 爲什麼縮進的錯誤原因是錯誤的功能?
- 23. PhoneGap app for iOS中EXC_BAD_ACCESS異常的可能原因是什麼?
- 24. 什麼可能是使用StackExchange.Redis超時異常的原因?
- 25. 是什麼原因造成的EXC_CRASH上拋出:異常?
- 26. setBackgroundResource拋出一個空異常的原因是什麼?
- 27. 獲得專門的兒童班的正確方法是什麼?
- 28. 如果退出正常,殺死進程
- 29. 什麼是MVC兒童動作?
- 30. 什麼是Windows 8'兒童會議'?
當然,我們需要更多的信息 – ckv 2011-01-28 06:09:47