你怎么知道 僵尸进程 Linux 中的或 dead 是已完成的进程,但由于父子进程不匹配,仍会出现在进程表中。 父进程使用函数控制子进程的状态 等待(),当子进程终止时,该函数告诉父进程从内存中终止进程。
但是,如果父进程未能为其任何子进程调用此类函数,则这些子进程将保持“活动”状态并占用其他进程可以使用的系统资源, 影响性能. 这就是为什么不时地杀死所有那些僵尸进程很重要的原因。 为此,可以通过两种方式突出显示:通过 GUI 或通过终端:
通过终端
要杀死 Linux 中的僵尸进程,您必须首先确定这些进程是什么,然后杀死它们。 好吧,这可以使用 ps、top 等工具来完成。 你可以使用你最喜欢的那个。 例如,以下是您可以使用的两个命令 检测是否有僵尸进程:
top ps axo stat,ppid,pid,comm | grep -w defunct
在第一种情况下,它是一个交互式命令,向您显示进程,并将在第二行(如您在图像中看到的)显示当前存在的僵尸进程的数量(在此图像 11 中)。 此外,您可以滚动浏览进程列表,并在 S 列中查看状态。 如果它被标记为 Z,那么它就是一个僵尸。
在第二种情况下,它只会向您显示您正在运行的僵尸进程的输出。
在一种情况下和另一种情况下,注意僵尸进程的 PID 以杀死它们是很重要的:
sudo kill -9 PID
你必须 更换 PID 按您的情况下的进程号。 另外,如果它不起作用,您可能需要特权,因此您必须在命令前面使用 sudo ...
通过图形用户界面
如果您对终端和命令不太熟练,也可以使用图形工具来完成。 例如,您可以使用系统监视器,例如 系统监视器 之类的。 在这里你也必须先定位僵尸进程,然后杀死它们:
- 打开系统监视器。
- 转到进程选项卡。
- 现在,使用搜索工具(放大镜)搜索术语僵尸。
- 在列表中出现的进程中,用鼠标右键单击它们并按 Kill。
确保它显示出来很重要 所有进程 系统的。 要检查这一点,请转到系统监视器设置菜单并查看选中的选项。