学习-Linux中如何杀掉僵尸进程

  1) 检查当前僵尸进程信息

  # ps -ef | grep defunct | grep -v grep | wc -l
  175
  # top | head -2
  top - 15:05:54 up 97 days, 23:49,  4 users,  load average: 0.66, 0.45, 0.39
  Tasks: 829 total,   1 running, 479 sleeping, 174 stopped, 175 zombie
  # ps -ef | grep defunct | grep -v grep

  2) 获得杀僵尸进程语句

  # ps -ef | grep defunct | grep -v grep | awk '{print "kill -9 " $2,$3}'

  执行上面获得的语句即可, 使用信号量9, 僵尸进程数会大大减少.

  3) 过一会儿检查当前僵尸进程信息

  # ps -ef | grep defunct | grep -v grep | wc -l
  125
  # top | head -2
  top - 15:29:26 up 98 days, 12 min,  7 users,  load average: 0.27, 0.54, 0.56
  Tasks: 632 total,   1 running, 381 sleeping, 125 stopped, 125 zombie

  发现僵尸进程数减少了一些, 但还有不少啊.

  4) 再次获得杀僵尸进程语句

  # ps -ef | grep defunct | grep -v grep | awk '{print "kill -18 " $3}'

  执行上面获得的语句即可, 这次使用信号量18杀其父进程, 僵尸进程应该会全部消失.

  5) 过一会儿再检查当前僵尸进程信息

  # ps -ef | grep defunct | grep -v grep | wc -l
  0
  # top | head -2
  top - 15:39:46 up 98 days, 23 min,  7 users,  load average: 5.46, 2.20, 1.12
  Tasks: 134 total,   1 running, 133 sleeping,   0 stopped,   0 zombie

  6) 清除ZOMBIE(僵尸)进程原理

  # kill -18 PPID

  PPID是其父进程, 这个信号是告诉父进程, 该子进程已经死亡了, 请收回分配给他的资源. 如果还不行则看先看其父进程又无其他子进程, 如果有, 可能需要先kill其他子进程, 也就是兄弟进程.

  方法是:

  # kill -15 PID1 PID2

  PID1,PID2是僵尸进程的父进程的其它子进程.

  然后再kill父进程:

  # kill -15 PPID
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要杀死Linux僵尸进程,可以使用以下命令: 1. 查找僵尸进程的PID:使用命令“ps -A -ostat,ppid,pid,cmd | grep -e '^[Zz]'”来查找僵尸进程的PID。 2. 使用kill命令杀死僵尸进程:使用命令“kill -9 PID”来杀死僵尸进程,其PID是第一步找到的进程ID。 3. 确认僵尸进程已被杀死:使用命令“ps -A -ostat,ppid,pid,cmd | grep -e '^[Zz]'”再次查找僵尸进程,确认它已被杀死。 注意:僵尸进程是由于父进程没有及时回收子进程的资源而产生的,因此在杀死僵尸进程之前,需要先找到并杀死其父进程。 ### 回答2: 首先,让我们先了解什么是僵尸进程僵尸进程是指已经退出但是父进程还没有处理完的进程。它们仍然占用系统资源,但是不能被直接杀掉。 接下来我将介绍三种方式来杀掉僵尸进程。 1. 使用kill命令:可以使用kill命令向僵尸进程发送SIGCHLD信号,从而让操作系统清理僵尸进程。可执行以下命令: ``` kill -s SIGCHLD <pid> ``` 其,<pid>指的是僵尸进程的进程ID。 2. 使用pkill命令:pkill命令是kill命令的一个改进版,可以根据进程名或其他进程属性来杀掉进程。可执行以下命令: ``` pkill -9 -f <process_name> ``` 其,<process_name>指的是僵尸进程的进程名。 3. 通过重启init进程:init进程是Linux系统的第一个进程,其进程ID为1。如果我们无法通过其他方式杀掉僵尸进程,可以重启init进程来清理僵尸进程。可执行以下命令: ``` kill -s SIGTERM 1 ``` 该命令将向init进程发送SIGTERM信号,使其重新启动。在重启过程,所有僵尸进程将被清理掉。 总结一下,以上三种方法都可以帮助你解决僵尸进程的问题。无论是使用kill命令、pkill命令还是重启init进程,都需要谨慎操作,避免误杀其他进程。在我们杀掉僵尸进程之后,使用ps命令查看一下进程状态,确保问题得到解决。 ### 回答3: 在 Linux 操作系统,当一个进程已经终止但却没有被其父进程杀死时,这个进程会变成僵尸进程。这可能会导致系统资源浪费和系统运行速度变慢,因此需要及时杀死僵尸进程。那么,Linux 怎么杀掉僵尸进程呢?下面是详细步骤: 步骤一、查看僵尸进程 在命令行下输入“ps -ef | grep -i zombie”,系统会列出当前系统僵尸进程的详细信息。 步骤二、找到僵尸进程的 PID PID 是进程标识符。在步骤一,系统列出了所有僵尸进程的详细信息,其包括进程的 PID。我们需要找到需要杀死的僵尸进程的 PID。 步骤三、杀死僵尸进程 在命令行下输入“kill -9 PID”,其 PID 为步骤二找到的需要杀死的僵尸进程的 PID。 步骤四、再次查看僵尸进程 在命令行下输入“ps -ef | grep -i zombie”,如果系统没有列出需要杀死的僵尸进程的详细信息,说明杀死僵尸进程操作成功。 总之,及时杀死僵尸进程可以有效地释放系统资源,保障系统的正常运行。需要注意的是,在杀死僵尸进程操作时,一定要慎重,避免误杀正在运行的进程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值