欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
linux 如何殺死僵尸進(jìn)程——原理及操作

linux 如何殺死僵尸進(jìn)程

Posted on 2011 年 9 月 20 日 by Open-Source


In UNIX System terminology, a process that has terminated,but whose parent has not yet waited for it, is called a zombie.


在UNIX 系統中,一個(gè)進(jìn)程結束了,但是他的父進(jìn)程沒(méi)有等待(調用wait / waitpid)他, 那么他將變成一個(gè)僵尸進(jìn)程.  在fork()/execve()過(guò)程中,假設子進(jìn)程結束時(shí)父進(jìn)程仍存在,而父進(jìn)程fork()之前既沒(méi)安裝SIGCHLD信號處理函數調用 waitpid()等待子進(jìn)程結束,又沒(méi)有顯式忽略該信號,則子進(jìn)程成為僵尸進(jìn)程。


如何查看linux系統上的僵尸進(jìn)程,如何統計有多少僵尸進(jìn)程?


#ps -ef | grep defunct


或者查找狀態(tài)為Z的進(jìn)程,Z就是代表zombie process,僵尸進(jìn)程的意思。


另外使用top命令查看時(shí)有一欄為S,如果狀態(tài)為Z說(shuō)明它就是僵尸進(jìn)程。


Tasks:  95 total,   1 running,  94 sleeping,   0 stopped,   0 zombie


top命令中也統計了僵尸進(jìn)程?;蛘呤褂孟旅娴拿睿?/p>


ps -ef | grep defunct | grep -v grep | wc -l

如何殺死僵尸進(jìn)程呢?


一般僵尸進(jìn)程很難直接kill掉,不過(guò)您可以kill僵尸爸爸。父進(jìn)程死后,僵尸進(jìn)程成為”孤兒進(jìn)程”,過(guò)繼給1號進(jìn)程init,init始終會(huì )負責清理僵尸進(jìn)程.它產(chǎn)生的所有僵尸進(jìn)程也跟著(zhù)消失。


ps -e -o ppid,stat | grep Z | cut -d” ” -f2 | xargs kill -9



kill -HUP `ps -A -ostat,ppid | grep -e ’^[Zz]‘ | awk ’{print $2}’`


當然您可以自己編寫(xiě)更好的shell腳本,歡迎與大家分享。


另外子進(jìn)程死后,會(huì )發(fā)送SIGCHLD信號給父進(jìn)程,父進(jìn)程收到此信號后,執行waitpid()函數為子進(jìn)程收尸。就是基于這樣的原理:就算父進(jìn)程沒(méi)有調用wait,內核也會(huì )向它發(fā)送SIGCHLD消息,而此時(shí),盡管對它的默認處理是忽略,如果想響應這個(gè)消息,可以設置一個(gè)處理函數。

如何避免僵尸進(jìn)程呢?


處理SIGCHLD信號并不是必須的。但對于某些進(jìn)程,特別是服務(wù)器進(jìn)程往往在請求到來(lái)時(shí)生成子進(jìn)程處理請求。如果父進(jìn)程不等待子進(jìn)程結 束,子進(jìn)程將成為僵尸進(jìn)程(zombie)從而占用系統資源。如果父進(jìn)程等待子進(jìn)程結束,將增加父進(jìn)程的負擔,影響服務(wù)器進(jìn)程的并發(fā)性能。在Linux下 可以簡(jiǎn)單地將 SIGCHLD信號的操作設為SIG_IGN。

signal(SIGCHLD,SIG_IGN);

這樣,內核在子進(jìn)程結束時(shí)不會(huì )產(chǎn)生僵尸進(jìn)程。這一點(diǎn)與BSD4不同,BSD4下必須顯式等待子進(jìn)程結束才能釋放僵尸進(jìn)程


或者


用兩次fork(),而且使緊跟的子進(jìn)程直接退出,是的孫子進(jìn)程成為孤兒進(jìn)程,從而init進(jìn)程將負責清除這個(gè)孤兒進(jìn)程


示例:


1) 檢查當前僵尸進(jìn)程信息


# ps -ef | grep defunct | grep -v grep | wc -l


175


# top | head -2


top - 15:05:54 up 97 days, 23:49, 4 users, load average: 0.66, 0.45, 0.39


Tasks: 829 total, 1 running, 479 sleeping, 174 stopped, 175 zombie


# ps -ef | grep defunct | grep -v grep


2) 獲得殺僵尸進(jìn)程語(yǔ)句


# ps -ef | grep defunct | grep -v grep | awk '{print "kill -9 " $2,$3}'


執行上面獲得的語(yǔ)句即可, 使用信號量9, 僵尸進(jìn)程數會(huì )大大減少.


3) 過(guò)一會(huì )兒檢查當前僵尸進(jìn)程信息


# ps -ef | grep defunct | grep -v grep | wc -l


125


# top | head -2


top - 15:29:26 up 98 days, 12 min, 7 users, load average: 0.27, 0.54, 0.56


Tasks: 632 total, 1 running, 381 sleeping, 125 stopped, 125 zombie


 現僵尸進(jìn)程數減少了一些, 但還有不少啊.


4) 再次獲得殺僵尸進(jìn)程語(yǔ)句


# ps -ef | grep defunct | grep -v grep | awk '{print "kill -18 " $3}'


執行上面獲得的語(yǔ)句即可, 這次使用信號量18殺其父進(jìn)程, 僵尸進(jìn)程應該會(huì )全部消失.


5) 過(guò)一會(huì )兒再檢查當前僵尸進(jìn)程信息


# ps -ef | grep defunct | grep -v grep | wc -l


0


# top | head -2


top - 15:39:46 up 98 days, 23 min, 7 users, load average: 5.46, 2.20, 1.12


Tasks: 134 total, 1 running, 133 sleeping, 0 stopped, 0 zombie


6) 清除ZOMBIE(僵尸)進(jìn)程原理


# kill -18 PPID


PPID是其父進(jìn)程, 這個(gè)信號是告訴父進(jìn)程, 該子進(jìn)程已經(jīng)死亡了, 請收回分配給他的資源. 如果還不行則看先看其父進(jìn)程又無(wú)其他子進(jìn)程, 如果有, 可能需要先kill其他子進(jìn)程, 也就是兄弟進(jìn)程.


是:


# kill -15 PID1 PID2


PID1,PID2是僵尸進(jìn)程的父進(jìn)程的其它子進(jìn)程.


然后再kill父進(jìn)程:


# kill -15 PPID

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
Linux僵尸進(jìn)程詳解
fork兩次如何避免僵尸進(jìn)程收藏
神奇的Java''僵尸''進(jìn)程問(wèn)題
Linux之僵尸進(jìn)程
Ubuntu查找和殺死僵尸進(jìn)程
Linux的精靈(daemon)進(jìn)程和僵尸(zombie)進(jìn)程 (zz)
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久