2011-04-27 32 views
0

我正在使用fork和execv來啓動子進程。如果我運行htop,那麼我可以找到這些進程。但是,即使我已將它設置爲顯示所有進程,OSX活動監視器也不會顯示它們。這是爲什麼?OSX Activity Monitor爲什麼不顯示我啓動的進程?

htop中的S列顯示了我所有進程的Z值。那是什麼意思?這可能與它有關嗎?

回答

1

htop中的Z表示該過程是一個「殭屍」。這意味着該進程已完成運行並希望死亡,但父進程尚未調用wait()來獲取子進程退出代碼。

OS X Activity Monitor可能不顯示殭屍進程。

+0

那麼這些衍生出來的程序不只是自行退出? – 2011-04-27 04:48:06

+1

他們自己退出,但通常父母會希望能夠找出返回的過程的退出代碼。這隻有在PID仍然分配給該進程時纔可能,直到父進程能夠找出退出代碼是什麼。當(a)父母爲所述殭屍調用「wait()」,或者(b)父母死亡時,殭屍進程就會消失。 – 2011-04-27 04:49:59

+0

如果使用'wait()',那麼是否會停止執行父進程,直到子進程退出? – 2011-04-27 04:53:42

相關問題