如何查看並殺死殭屍進程?

用下面的命令找出僵死進程:php

  ps -A -o stat,ppid,pid,cmd | grep -e '^[Zz]'java


命令註解:
  -A 參數列出全部進程
  -o 自定義輸出字段 咱們設定顯示字段爲 stat(狀態), ppid(進程父id), pid(進程id),cmd(命令)這四個參數服務器

-C 用來指定所執行的命令名稱,你這裏也就是讓ps僅僅顯示php命令所產生的進程的信息ps -C java -o lstart,pid,cmd【不過貌似打印的不全~】ps -A -o lstart,pid,args |grep java【這個能夠的~】  由於狀態爲 z或者Z 的進程爲殭屍進程,因此咱們使用grep抓取stat狀態爲zZ進程
ide


殺掉殭屍進程:進程

kill -9 ppidcmd



補充:it

  最近又遇到了個問題,一臺服務器上產生了100多少僵死進程,並且每一僵死進程的父進程都不同,若是用上面的方法,一條一條的殺,那還不得累死我啊。
  那麼就應該想一條簡單的命令,直接查找僵死進程,而後將父進程殺死~class

ps -A -o stat,ppid,pid,cmd | grep -e '^[Zz]' | awk '{print $2}' | xargs kill -9 awk

相關文章
相關標籤/搜索