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
分享到:
相关推荐
Linux杀死僵尸进程.zip 需要掌握的运维命令有ls、ps、free、top、uptime、ifconfig、susudo、dmesg、iostat、vmstat、sar、htop、iotop、smem等
本文将详细介绍如何在Linux系统中寻找和杀掉这些僵尸进程。 ### 一、理解僵尸进程 僵尸进程是指一个已经结束但是其父进程没有调用`wait()`或`waitpid()`函数进行回收的进程。当一个子进程结束时,内核会保留该进程...
### Linux中的僵尸进程详解 #### 一、僵尸进程的概念与形成原因 在Linux系统中,程序的执行是以进程的形式存在的。每一个进程都有一个父进程(除非是init进程,它的PID为1,没有父进程),而它自身又可以作为其他...
### 在Linux系统中查看进程及杀死僵尸进程的方法 #### 一、引言 在Linux操作系统中,进程管理是一项重要的任务,它涉及到系统性能优化、故障排查等多个方面。本文将详细介绍如何使用`ps`命令来查看系统中的进程...
为了遵循这些设计原则,不允许 Linux 内核在进程一终止后就丢弃包含在进程描述符字段中的数据。只有父进程发出了与被终止的进程相关的 wait() 类系统调用之后,才允许这样做。这就是引入僵死状态的原因:尽管从技术...
僵尸进程是计算机操作系统中的一种特殊状态,当一个进程执行完毕并退出,但其父进程尚未读取其退出状态时,这个已结束的进程就会成为僵尸进程。它的主要特征是进程已不再执行任何代码,但其进程描述符仍然存在于内存...
Linux安全攻略——僵尸进程.pdf中讨论了Linux操作系统中的进程管理机制,包括进程的概念、进程调度、进程树、进程标识符、进程生命周期等方面的知识点。 进程概念 在Linux操作系统中,进程是动态的,程序是静态的...
Linux避免僵尸进程
僵尸进程是Linux系统中常见的一个问题,虽然它们对系统的影响有限,但长期存在的僵尸进程会逐渐消耗系统资源。对于那些难以杀死的僵尸进程,我们需要深入分析其背后的原因,并采取相应措施来解决问题。通过上述方法...
本文主要给大家介绍了关于Linux中僵尸进程和孤儿进程的相关内容,分享给出来供大家参考学习,下面来看看详细的介绍: 1、僵尸进程 一个子进程在其父进程没有调用wait()或waitpid()的情况下退出,这个子进程就是僵尸...
尽管僵尸进程占用的资源相对较小,但如果系统中积累了大量的僵尸进程,会浪费有限的PCB资源,影响系统的性能。此外,如果父进程忽略了子进程的退出状态,可能会导致信息丢失,因为子进程的退出状态只在父进程调用`...
我们可以使用如下几种方法避免僵尸进程的产生: 1.在fork后调用wait/waitpid函数取得子进程退出状态。 2.调用fork两次(第一次调用产生一个子进程,第二次调用fork是在第一个子进程中调用,同时将父进程退出(第一...
linux抓取僵尸网络进程脚本
dumb-init 跨框架init初始化进程,有效回收僵尸进程
这就意味着有些进程不能被reboot发出的kill –9杀掉,这些很可能就是僵尸进程。 使用ps命令的-l选项可以得到更详细的进程信息。F(Flag)是一系列数字的和,表示进程的当前状态。这些数字的含义为: * 00:若单独...
为了避免这种情况,可以在父进程中等待子进程结束。 ```python def wait_for_subprocess(p): # 等待子进程结束,并处理僵尸进程 p.wait() if p.returncode is None: os.waitpid(p.pid, 0) def main(): cmd = ...
一种常见的做法是在父进程中使用信号处理函数来响应子进程的终止信号,自动调用 `wait()` 或 `waitpid()` 来回收子进程的资源。 #### 守护进程的创建 守护进程的创建通常遵循以下步骤: 1. **第一次 fork**:创建...
如果进程启动了子进程,kill 命令可能不会杀死这些子进程,从而导致僵尸进程的出现。 2. 使用 kill 命令带 -l 选项 kill 命令带 -l 选项可以以优雅的方式结束进程。其语法为 `kill -l PID`,其中 PID 是要杀死的...