2011-10-08 27 views
1

我犯了一個殭屍進程與此代碼:ps命令中Z +的結果是什麼?

pid_t child; cout<<getpid(); child=fork(); if (child>0) sleep(60); else exit(0);

和我使用下面的命令:

PS -e -o PID,PPID,STAT,指揮

它是okey,但我期望在我的過程(stat)前看到Z,但它是Z +,那是什麼意思?

回答

1

從PS man頁面,更具體的過程狀態代碼:

Z defunct ("zombie") process, terminated but not reaped by its parent. 
+ is in the foreground process group. 

當shell執行你的代碼,它改變了你的程序到一個單獨的前臺進程組。代碼中的每個子代都與原始程序位於同一個前臺進程組中,因此,即使父進程退出,該子進程仍處於前臺進程組中,這就是您查看+的原因。

相關問題