如何在Debian 10中检查并杀死Zombie进程

僵尸进程是一种已完成的进程,但是由于子进程和父进程之间缺乏通信,因此其条目仍保留在进程表中。

在本操作方法中,我将演示如何在Debian 10中检查并杀死僵尸进程。

先决条件

您需要在进程表中具有root特权和至少一个僵尸进程条目。

如何在Debian 10中检查僵尸进程

通过命令行

您可以使用top命令获得系统上运行的所有进程的列表,如下所示。

为了检查Debian 10机器上的僵尸进程,您需要打开一个终端并执行以下命令。

ps axo stat,ppid,pid,comm | grep -w defunct

使用ps命令列出僵尸进程

由于我们的计算机上没有运行任何僵尸进程,因此我们将在下一步中创建一个虚拟的僵尸进程,以便我可以将其杀死。 。

通过GUI

也可以在GUI的帮助下完成相同操作。 系统监视器实用程序 从仪表板如下所示。

系统监视器实用程序

该工具将为您显示计算机上正在运行的所有进程的列表。您还可以上下滚动查看所有进程。

在系统监视器中查找僵尸进程

如何在Debian 10中创建虚拟僵尸进程

打开文本编辑器并粘贴以下代码。该代码已从https://vitux.com/how-to-create-a-dummy-zombie-process-in-ubuntu/复制

#include 
#include 
#include int main ()
{
pid_t child_pid;child_pid = fork ();
if (child_pid > 0) {
sleep (60);
}
else {
exit (0);
}
return 0;
}

将文件另存为zombie.c,僵尸进程将运行60秒,但是您可以调整睡眠功能的时间。

接下来,打开一个终端并运行以下命令来编译该程序,这将创建一个可执行的目标文件。

cc zombie.c -o zombie

接下来,运行以下命令以创建一个将存活60秒的僵尸进程。

./zombie

虚拟僵尸进程

如何杀死僵尸进程

通过命令行

现在我们有了一个僵尸进程,因此我们也可以杀死它。

打开终端并执行以下命令以了解僵尸父进程ID。

ps axo stat,ppid,pid,comm | grep -w defunct

您可以从以下屏幕截图中看到,父进程ID是命令结果中的第二个条目。

杀死僵尸进程

在具有root特权的终端上发出以下命令,这将终止僵尸进程。

kill -9  (which is 2844 in our case)

如果使用ps命令检查进程,则不会注意到系统上正在运行任何僵尸进程或已失效的进程。

通过GUI

再次从仪表板打开系统监视器实用程序,并列出所有用户的进程。您将注意到计算机上正在运行一个僵尸进程。

在Debian GUI中杀死Zombie进程

现在,右键单击僵尸进程,然后单击“杀死”按钮以终止该进程。将要求您进行确认。单击“杀死进程”以进行确认。还将要求您提供root用户凭据。

希望本教程对您了解僵尸进程有很大帮​​助。

如何在Debian 10中检查并杀死Zombie进程

Sidebar