linux对于zombie的处理
生活随笔
收集整理的這篇文章主要介紹了
linux对于zombie的处理
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
@(Linux基礎)[僵尸進程處理]
今天在服務器上推送項目的時候,突然發現很卡。就用top查看了一下,果然此事不簡單啊。
注意:zombie 僵尸進程而且還是5個。
此時此刻,只想說這些這幫人搗亂玩。
解決辦法:
在linux中,利用命令ps,可以看到有標記為Z的進程就是僵尸進程。
可以用ps的-l選項,得到更詳細的進程信息. F(Flag):一系列數字的和,表示進程的當前狀態。這些數字的含義為:
00:若單獨顯示,表示此進程已被終止。01:進程是核心進程的一部分,常駐于系統主存。如:sched、 vhand 、bdflush 等。02:Parent is tracing process.04:Tracing parent’s signal has stopped the process; the parent is waiting ( ptrace(S)).10:進程在優先級低于或等于25時,進入休眠狀態,而且不能用信號喚醒,例如在等待一個inode被創建時 20:進程被裝入主存(primary memory)40:進程被鎖在主存,在事務完成前不能被置換S(state of the process )O:進程正在處理器運行 S:休眠狀態(sleeping)R:等待運行(runable) I:空閑狀態(idle)Z:僵尸狀態(zombie) T:跟蹤狀態(Traced)B:進程正在等待更多的內存頁C:cpu利用率的估算值(cpu usage)處理僵尸進程
kill -18 PPID (PPID是其父進程)?這個信號是告訴父進程,該子進程已經死亡了,請收回分配給他的資源。
?SIGCONT也是一個有意思的信號。如前所述,當進程停止的時候,這個信號用來告訴進程恢復運行。該信號的有趣的地方在于:它不能被忽略或阻塞,但可以被捕獲。缺省行為是丟棄該信號。
終止父進程
?如果方法2不能終止,可采用終止其父進程的方法(如果其父進程不需要的話)父進程死后,僵尸進程成為”孤兒進程”,過繼給1號進程init,init始終會負責清理僵尸進程.它產生的所有僵尸進程也跟著消失。
先看其父進程又無其他子進程,如果有,可能需要先kill其他子進程,也就是兄弟進程。方法是:
然后再kill父進程:kill –15 PPID
這樣僵尸進程就可能被完全殺掉了。
轉載于:https://www.cnblogs.com/xiaogongzi/p/9081706.html
總結
以上是生活随笔為你收集整理的linux对于zombie的处理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Cities
- 下一篇: linux中查找文件属于那个软件包的方法