当前位置:酷酷问答>百科问答>僵尸进程怎么杀

僵尸进程怎么杀

2024-10-11 16:54:23 编辑:zane 浏览量:523

僵尸进程怎么杀

的有关信息介绍如下:

僵尸进程怎么杀

僵尸进程的查杀方法一般可以通过kill命令发送强制退出信号来结束。如果结束不掉子进程,可以用kill命令发送强制退出信息来结束父进程。如果父进程不能结束,则考虑挂起父进程,以实现“曲线救国”。

一般在查看系统状态的时候会发现僵尸进程,这里以top命令为例,如下图所示,发现一个僵尸进程。

接下来需要确定僵尸进程的相关信息,比如父进程pid、僵尸进程的pi以及命令行等信息。可以执行如下命令

ps -e -o stat,ppid,pid,cmd | egrep '^[Zz]'

说明:

ps:ps命令用于获取当前系统的进程信息.

-e:参数用于列出所有的进程

-o:参数用于设定输出格式,这里只输出进程的stat(状态信息)、ppid(父进程pid)、pid(当前进程的pid),cmd(即进程的可执行文件。

egrep:是linux下的正则表达式工具

'^[Zz]':这是正则表达式,^表示第一个字符的位置,[Zz],表示z或者大写的Z字母,即表示第一个字符为Z或者z开头的进程数据,只所以这样是因为僵尸进程的状态信息以Z或者z字母开头。

现在大多数linux系统,也会将僵尸进程标识为defunct,所以你也可以通过如下命令来获取僵尸进程信息。

ps -ef | grep "defunct"

一般来说先用kill命令发送强制终止的信息,结束子进程。如下图所示,这时候子进程是没有办法结束的。

所以,这时候需要用kill -9来强制终止父进程,如下图所示,这时候就发现没有僵尸进程了。

上面的方法是通过结束父进程从而结束僵尸进程,这只能算是一个比较理想的情况 ,很多时候遇到僵尸进程我们不能结束父进程,比如父进程是init进程,那一旦结束父进程,整个系统就挂掉了,这时候则可以考虑挂起子进程,这相当于“曲线救国”。一个进程一旦挂起就相当于“什么都不做了”。可以通过执行如下命令来挂起进程。

kill -HUP 进程pid

上面简单的通过实例介绍了如何杀掉僵尸进程,但事实上很多时候僵尸进程只是一个现象,就像病人发烧一样,只是一个症状,杀掉进程只是“治标”,要治本,还需要自己针对具体的情况进行分析解决 。

版权声明:文章由 酷酷问答 整理收集,来源于互联网或者用户投稿,如有侵权,请联系我们,我们会立即处理。如转载请保留本文链接:https://www.kukuwd.com/answer/74344.html
热门文章