如何查找和杀掉Linux中的僵尸进程?

  • 时间:2022-03-15 15:02 作者:等会再说 来源: 阅读:459
  • 扫一扫,手机访问
摘要:Linux 系统中,进程就是一个程序的运行实例。它可能运行在前台(比方有交互的进程),也可能运行在后台(比方无交互或者自动运行的进程)。它可能是一个父进程(运行期间创立了其余进程),也可能是一个子进程(由其余进程所创立)。在 Linux 系统中,除 PID 为 0 的第一个 init 进程(或者 sys

Linux 系统中,进程就是一个程序的运行实例。它可能运行在前台(比方有交互的进程),也可能运行在后台(比方无交互或者自动运行的进程)。它可能是一个父进程(运行期间创立了其余进程),也可能是一个子进程(由其余进程所创立)。

在 Linux 系统中,除 PID 为 0 的第一个 init 进程(或者 systemd)外,其他进程都有父进程。进程也可以拥有自己的子进程。

你可以通过使用 pstree 命令来查看进程的树型结构,你可以清晰的看到各个进程的“家族树”。

什么是僵尸进程

在 Linux 系统中,正常情况下,子进程死亡后其父进程会接收到通知进行少量例如释放内存之类的清除操作。但是,假如父进程未收到通知察觉子进程死亡,那么子进程就进入了“僵死”状态。

这就是僵死进程产生的起因。

碰到僵尸进程怎样办?

僵尸进程并不可怕,一些的僵尸进程对系统影响并不大。但假如系统的内存已经所剩不多或者者有太多的僵尸进程在耗掉内存,问题会变得糟糕。

同样,大部分 Linux 系统进程最大 PID 设置为 32768,假如过多僵尸进程导致其余重要任务没有 PID 可用,那么你的系统会发生崩溃。

特别当存在一个编码糟糕的程序开始大量产生僵尸进程的时候,这种情况经常发生。在这种情况下,我们就需要找到并杀死僵尸进程。

如何查找僵尸进程

在linux系统中,进程有如下几种状态,它们随时可能处于以上状态中的一种:

  • D = 不可中断的休眠

  • I = 空闲

  • R = 运行中

  • S = 休眠

  • T = 被调度信号终止

  • t = 被调试器终止

  • Z = 僵尸状态

我们可以在命令终端中通过top命令来查看系统进程和它的当前状态。

命令如下:

top

如上面截图中看到的,其中共有 250 个任务(进程),其中 1 个处在 “运行中running” 状态,248 个进程处于 “休眠sleep” 状态,还有一个处于 “僵尸zombie” 状态。

现在问题进入下一步,如何杀死 “僵尸” 进程?

杀死僵尸进程

僵尸进程对系统来说就是已经死亡的进程,那么如何杀掉一个已经死亡的进程呢?

方法很简单,我们只要要通过如下ps命令即可以列举僵尸进程,得到它们的进程 ID。

ps ux | awk '{if($8=="Z+") print}'

ps ux 命令输出的第 8 列显示了进程状态。上述命令将会打印所有处在 Z+ 状态(表示僵尸状态)的进程。

确认了进程 ID 后,我们可以得到它的父进程 ID:

ps -o ppid= -p <child_id>

你也可以将上述两个命令结合在一起,直接得到僵尸进程的 PID 及其父进程的 PID:

ps -A -ostat,pid,ppid | grep -e '[zZ]'

通过以上命令都可以找到僵尸进程,而后你即可以通过kill命令杀掉了。

kill -9 父进程号

或者者通过如下命令查看僵尸进程:

ps -ef | grep defunct

该命令输出结果上你可以直接看出其父进程ID,这时候你直接使用kill命令杀掉就可。

再次运行 ps 命令或者 top 命令,你可以验证僵尸进程能否已经被杀死。

写在最后

通过本文你将认识 Linux 系统中的僵尸进程以及明白了其产生的主要起因。同时,你也能学会如何查找僵尸僵尸进程并杀掉僵尸进程。

当然你也可以自己别写脚本设置成定时运行任务自动来替你做这些工作。

  • 全部评论(0)
最新发布的资讯信息
【系统环境|】2FA验证器 验证码如何登录(2024-04-01 20:18)
【系统环境|】怎么做才能建设好外贸网站?(2023-12-20 10:05)
【系统环境|数据库】 潮玩宇宙游戏道具收集方法(2023-12-12 16:13)
【系统环境|】遥遥领先!青否数字人直播系统5.0发布,支持真人接管实时驱动!(2023-10-12 17:31)
【系统环境|服务器应用】克隆自己的数字人形象需要几步?(2023-09-20 17:13)
【系统环境|】Tiktok登录教程(2023-02-13 14:17)
【系统环境|】ZORRO佐罗软件安装教程及一键新机使用方法详细简介(2023-02-10 21:56)
【系统环境|】阿里云 centos 云盘扩容命令(2023-01-10 16:35)
【系统环境|】补单系统搭建补单源码搭建(2022-05-18 11:35)
【系统环境|服务器应用】高端显卡再度登上热搜,竟然是因为“断崖式”的降价(2022-04-12 19:47)
手机二维码手机访问领取大礼包
返回顶部