Linux 如何杀死僵尸进程

问题描述:

shell > top
top - 11:14:17 up 630 days, 21:23,  1 user,  load average: 0.23, 0.81, 1.07
Tasks: 389 total,   1 running, 385 sleeping,   0 stopped,   3 zombie
Cpu(s):  3.6%us,  0.8%sy,  0.0%ni, 95.3%id,  0.0%wa,  0.0%hi,  0.3%si,  0.0%st
Mem:  24596748k total,  3346824k used, 21249924k free,    50344k buffers
Swap:  8388600k total,     9704k used,  8378896k free,  1649016k cached

# 发现有三个僵尸进程 3 zombie ,这是因为先杀死了父进程导致

shell > ps aux | grep Z
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root      7811  0.0  0.0      0     0 ?        Zs   11:15   0:00 [yiic_elastic_kt] <defunct>
root      8446  0.0  0.0 103260   872 pts/1    R+   11:18   0:00 grep Z

# 不给面子,已经自动死了两个,估计是太阳出来了

shell > kill -9 7811

# 这样是杀不死的,还顽强的存活着

解决方法:

shell > ps -ef | grep defunct
root      8850  8840  0 11:20 ?        00:00:00 [yiic_elastic_kt] <defunct>
root      8851  8842  0 11:20 ?        00:00:00 [yiic_elastic_kt] <defunct>
root      8853  8843  0 11:20 ?        00:00:00 [yiic_elastic_kt] <defunct>
root      8855  8839  0 11:20 ?        00:00:00 [yiic_elastic_kt] <defunct>
root      9066  7621  0 11:20 pts/1    00:00:00 grep defunct

# 我去,又跑出来三个...

shell > ps -ef | grep defunct | awk ‘{print $3}‘ | xargs -i kill {}

# $3 是这些僵尸进程的父进程 PID ( PPID ),杀之!

shell > ps -ef | grep defunct
root     10008  7621  0 11:24 pts/1    00:00:00 grep defunct

# 已经灰飞烟灭!

时间: 2024-10-01 04:40:09

Linux 如何杀死僵尸进程的相关文章

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 | gr

linux 如何清理僵尸进程

今天在维护服务器的时候,发现有5个nova-novncproxy的僵尸进程. 26327 ?        S      0:05  \_ /usr/bin/python /usr/bin/nova-novncproxy --config-file=/etc/nova/nova.conf 4765 ?        Z      0:00      \_ [nova-novncproxy] <defunct> 4766 ?        Z      0:00      \_ [nova-no

Linux下的僵尸进程和孤儿进程

说明 在UNIX里,除了进程0(即PID=0的交换进程,Swapper Process)以外的所有进程都是由其他进程使用系统调用fork创建的,这里调用fork创建新进程的进程即为父进程,而相对应的为其创建出的进程则为子进程,因而除了进程0以外的进程都只有一个父进程,但一个进程可以有多个子进程. 操作系统内核以进程标识符(Process Identifier,即PID)来识别进程.进程0是系统引导时创建的一个特殊进程,在其调用fork创建出一个子进程(即PID=1的进程1,又称init)后,进程

Linux 系统中僵尸进程

Linux 系统中僵尸进程 Linux 系统中僵尸进程和现实中僵尸(虽然我也没见过)类似,虽然已经死了,但是由于没人给它们收尸,还能四处走动.僵尸进程指的是那些虽然已经终止的进程,但仍然保留一些信息,等待其父进程为其收尸. 僵尸进程如何产生的? 如果一个进程在其终止的时候,自己就回收所有分配给它的资源,系统就不会产生所谓的僵尸进程了.那么我们说一个进程终止之后,还保留哪些信息?为什么终止之后还需要保留这些信息呢? 一个进程终止的方法很多,进程终止后有些信息对于父进程和内核还是很有用的,例如进程的

linux中的僵尸进程

1.什么是僵尸进程? 僵尸进程是指子进程比父进程先结束,而父进程却没有回收子进程,释放子进程占用的资源.僵尸进程也一直在进程表中占着一个slot,但进程表容量有限,defunct进程不仅占用系统资源,还影响系统性能,如果其数目较多还可能导致系统瘫痪.这里有个形象的解释:进程在退出后就立刻变成了僵尸,然后等父进程收尸:如果这时它的父进程已经死了,也就是说这个进程是个孤儿,它的父进程临死前"托孤"的init进程,也就是它的养父,会帮它收尸.如果这里它的父进程还没死,就要看这个父进程在做什么

linux系统寻找僵尸进程

1. 用top命令来查看服务器当前是否有僵尸进程. 2. 用ps和grep命令寻找僵尸进程 $ ps -A -ostat, pid, ppid, cmd | grep -e '^[Zz]' 命令解释: -A :列出所有进程 -o :自定义输出字段,这条命令设定显示字段为stat(状态),pid(进程id),ppid(父进程id),cmd(命令) 状态为z或者Z的进程为僵尸进程,所以用grep抓取stat状态为zZ进程 3. kill命令杀死僵尸进程 $ kill 2148 如果kill 2148

Unix/Linux系统中僵尸进程是如何产生的?有什么危害?如何避免?

如题 Unix/Linux系统中僵尸进程是如何产生的?有什么危害?如何避免? 一个进程在调用exit命令结束自己的生命的时候,其实他并没有真正的被销毁,而是留下一个称为僵尸进程(Zombie)的数据结构(系统调用exit,他的作用是使进程退出,但是也仅仅限于一个正常的进程变成了一个僵尸进程,并不能完全将其销毁).在linux进程的状态中,僵尸进程是非常特殊的一种,它已经放弃了几乎所有的内存空间,没有任何可执行代码,也不能被调度,仅仅在进程列表中保留一个位置,记载该进程的退出状态信息供其他进程收集

Centos系统杀死僵尸进程

ps -A -o stat,ppid,pid,cmd | grep -e '^[Zz]' | awk '{print $2}' | xargs kill -9 定位僵尸进程以及该僵尸进程的父进程 ps -A -ostat,ppid,pid,cmd |grep -e '^[Zz]' 使用Kill -HUP 僵尸进程ID来杀死僵尸进程,往往此种情况无法杀死僵尸进程,此时就需要杀死僵尸进程的父进程kill -HUP 僵尸进程父ID然后使用上面的语句查询该僵尸进程是否被杀死 ps -A -ostat,p

Linux上寻找并杀死僵尸进程

转载: http://blog.csdn.net/shanzhizi/article/details/47320595 linux服务器上,多少会出现一些僵尸进程,下面介绍如何快速寻找和消灭这些僵尸进程的方法 首先,我们可以用top命令来查看服务器当前是否有僵尸进程,在下图中可以看到僵尸进程数的提示,如果数字大于0,那么意味着服务器当前存在有僵尸进程 下面,我们用ps和grep命令寻找僵尸进程 ps -A -ostat,ppid,pid,cmd | grep -e '^[Zz]' 命令注解: -