此程式可以產生殭屍程序

2021-09-06 19:23:03 字數 933 閱讀 1713

//

這個程式可以產生殭屍程序

#include #include

#include

#include

#include

int main(int argc , char **argv)

else

if(id==0)

else

if(id>0

)

return0;

}[root@linux desktop]# ./a.outi'

m in child process3418 parent process 3417 //這句輸出後大概停頓20秒,才輸出下面

i'm in parent process3417 parent process 3276

[root@linux desktop]#

[root@linux desktop]# ps aux | grep -w 'z'

root

3418

0.00.0

00 pts/0 z+ 21:27

0:00 [a.out] //產生殭屍程序root

3428

0.00.0

4336

796 pts/1 s+ 21:27

0:00 grep -w z

[root@linux desktop]#

如果將signal(sigchld, sig_ign);這行**加上將不會產生殭屍程序的

[root@linux desktop]# ps aux | grep -w 'z'

root 3575 0.0 0.0 4336 796 pts/1 s+ 21:36 0:00 grep -w z

[root@linux desktop]#

mysql殭屍程序 殭屍程序產生原因和解決方法

在linux系統中,當用ps命令觀察程序的執行狀態時,經常看到某些程序的狀態列為defunct,這就是所謂的 殭屍 程序。殭屍 程序是乙個早已死亡的程序,但在程序表 processs table 中仍佔了乙個位置 slot 由於程序表的容量是有限的,所以,defunct程序不僅占用系統的記憶體資源,...

防止殭屍程序的產生

apue的 直接貼這裡。這段 採用了兩次fork,來避免產生殭屍程序。當乙個程序的父程序先退出,該程序就由init程序接管。init程序就成為了該程序的父程序 該程序退出時,有init來清理。所以該程序就不會成為殭屍程序了。include include include include intmai...

殭屍程序的產生原因

在linux系統中,殭屍程序是已經執行完畢,但是沒有被父程序 的子程序。判斷殭屍程序的乙個方法是使用ps命令檢視程序狀態。如果程序狀態是z,說明這是乙個殭屍程序。在多程序的程式中,父程序會啟動若干個子程序來處理任務。當子程序退出後,除了在程序表中占用的乙個程序表項,子程序所使用的資源 檔案描述符 記...