如何在Linux上杀死僵尸进程??

僵尸进程!

也称为“已失效”或“无效”进程–简单来说,僵尸进程是已失效但存在于系统进程表中的进程。理想情况下,应该在完成工作/执行后从进程表中清除它,但是由于某种原因,其父进程在执行后不能正确地对其进行清除。

在公正(Linux)的世界中,进程在完成执行并退出后会通知其父进程。然后,父流程将从流程表中删除该流程。在此步骤中,如果父进程无法从其子进程(已完成的进程)读取进程状态,则它将无法从内存中删除该进程,因此进程表中仍然存在已死的进程–因此,被称为僵尸!

为了杀死僵尸进程,我们需要首先对其进行识别。以下命令可用于查找僵尸进程:

$ ps aux | egrep "Z|defunct"

STAT列中的Z和/或输出的最后一个(COMMAND)列中的[已终止]将标识Zombie进程。

现在,您几乎无法杀死僵尸,因为它已经死了!可以做的是显式地通知其父进程,以便它可以重试以读取子(死)进程的状态,并最终从进程表中清除它们。这可以通过向父进程发送SIGCHLD信号来完成以下命令可用于查找父进程ID(PID):

$ ps -o ppid= <Child PID>

一旦获得了僵尸的父进程ID,就可以使用以下命令将SIGCHLD信号发送到父进程:

$ kill -s SIGCHLD <Parent PID>

但是,如果这无助于清理Zombie进程,则您将不得不终止或重新启动其父进程,或者如果Zombie进程激增导致或走向系统中断,那么您将别无选择系统重启。以下命令可用于终止其父进程:

$ kill -9 <Parent PID>

请注意,杀死父进程将影响其所有子进程,因此快速进行仔细检查将有助于确保安全。另外,如果很少有僵尸进程不占用大量CPU /内存,则最好在下一次计划的系统维护中杀死父进程或重新启动系统。


作者头像
南宫俊逸创始人

君子好学,自强不息~

上一篇:PostgreSQL与Docker –快速入门
下一篇:BTRFS文件系统??

发表评论

vidnami 在线视频创作工具--做海外推广营销视频必备工具

image.png


我们的折扣优惠是向观众推广Vidnami的绝妙方式。他们将即时访问 25% 的 Vidnami, 再加上我们的视频营销包免费。最棒的是,您将获得所有销售额的50%!

https://www.vidnami.com/c/Mr_xiaoxiao-vn-buy-discount 

期待各位的加入,让原创发挥活力,让阅读更有价值!登录注册
登录
用户名
密码
注册
用户名
密码
确认密码
邮箱
验证码
找回密码
用户名
邮箱
※ 重置链接将发送到邮箱