服务器产生大量的僵尸进程

如何查看linux系统上的僵尸进程,如何统计有多少僵尸进程?

#ps -ef | grep defunct

或者查找状态为Z的进程,Z就是代表zombie process,僵尸进程的意思。

另外使用top命令查看时有一栏为S,如果状态为Z说明它就是僵尸进程。

Tasks:  95 total,   1 running,  94 sleeping,   0 stopped,   1617 zombie

top命令中也统计了僵尸进程。或者使用下面的命令:

ps -ef | grep defunct | grep -v grep | wc -l

如何杀死僵尸进程呢?

一般僵尸进程很难直接kill掉,不过您可以kill僵尸爸爸。父进程死后,僵尸进程成为”孤儿进程”,过继给1号进程init,init始终会负责清理僵尸进程.它产生的所有僵尸进程也跟着消失。

ps -e -o ppid,stat | grep Z | cut -d” ” -f2 | xargs kill -9

时间: 2024-08-07 03:15:38

服务器产生大量的僵尸进程的相关文章

服务器cpu被大量僵尸进程占用

case info centos 6.5/RAID1+RAID5 服务器开机后大量进程占用cpu资源,居高不下,僵尸进程和负载越来越大,导致服务器各项服务不能正常使用 快速清理木马流程 假设木马的名字是nshbsjdy,如果top看不到,可以在/etc/init.d目录下面查看 1.首先锁定三个目录,不能让新木马文件产生 1 2 3 4 chmod 000 /usr/bin/nshbsjdy chattr +i /usr/bin chattr +i /bin chattr +i /tmp 2.删

TCP/IP 网络编程 (抄书笔记 3) -- 僵尸进程和多任务并发服务器

TCP/IP 网络编程 (抄书笔记 3) – 僵尸进程和多任务并发服务器 TCP/IP 网络编程 (抄书笔记 3) – 僵尸进程和多任务并发服务器 Table of Contents 僵尸进程的产生 避免僵尸进程 信号 多任务的并发服务器 僵尸进程的产生 子进程先退出, 父进程没有退出 ==> 僵尸进程 父进程先退出, 子进程没有退出 ==> 子进程被 0 号进程回收, 不会产生僵尸进程 pid_t pid = fork(); if (pid == 0) { // child printf(&

Linux上寻找并杀死僵尸进程

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

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

Linux系统寻找和杀掉僵尸进程

Linux服务器上,多少会出现一些僵尸进程,下面介绍如何快速寻找和消灭这些僵尸进程的方法 首先,我们可以用top命令来查看服务器当前是否有僵尸进程,在下图中可以看到僵尸进程数的提示,如果数字大于0,那么意味着服务器当前存在有僵尸进程 下面,我们用ps和grep命令寻找僵尸进程 ps -A -ostat,ppid,pid,cmd | grep -e '^[Zz]' 命令注解: -A 参数列出所有进程 -o 自定义输出字段 我们设定显示字段为 stat(状态), ppid(进程父id), pid(进

服务器产生大量僵尸进程,查询并杀死zombie

一.服务器发生异常报警描述:服务器负载过高,达到160左右,网站访问正常 二.分析产生原因:php统计时,计划任务中的任务产生的大量僵尸进程 三.过程查看:     如何查看僵尸进程:     ps -A -ostat,ppid,pid,cmd | grep -e '^[Zz]' 四.解决方案: 如何杀死僵尸进程:(通过临时写下面脚本,杀死其父进程) #!/bin/bash for ZOMBIE in `ps -A -o stat,ppid,pid,cmd | grep -e '^[Zz]' |

Linux 网络编程六(多进程服务器僵尸进程解决方案)

僵尸进程解决方案 1.忽略SIGCHLD信号,这样不会出现僵尸进程 2.安装信号,父进程接收到SIGCHLD信号后,wait()子进程 注意:这里的客户端有两个进程,一个接收信息,一个发送信息,当客户端退出时,会将sockfd套接字关闭两次 //头文件 int server_socket(); int client_socket(); //服务器端 #include "pub.h" int main(int arg,char *args[]) { server_socket(); re

Exchange 2010 服务器中了木马,僵尸进程2270个

最近一直在忙系统迁移,忙的焦头烂额,根本没有时间维护公司的邮件服务器.上面有1000多人的邮箱啊. 今天上午11点,helpdesk电话我,说exchange上面的发垃圾邮件程序打不开了.我心想奇怪了.怎么会这样?我当时手上很多事情,就让他重启服务试试,重启完了,说还不行.有点重视了.远程桌面登上服务器一看,当时就傻眼了,2270个僵尸进程在跑.都是"tbviewer.exe,utilman.exe".明显中木马了.使用taskkill无法批量删除,下载个360急救箱,赶紧查杀木马.结

关于如何有效避免僵尸进程的一种探索。(动手写自己的http服务器)

关于如何避免僵尸进程.其实方法很多.有很多现成的解决方案.这里给出一个简单的方案.以及背后思考的过程. 设想一种最简单的http服务器: 伪代码: 当接收到一个tcp请求的时候. fork 一个子进程去做工作. 主进程依旧在监听下面要来的请求. 这个模型实际上会导致.因为fork出来的子进程没有回收,并且父进程一直存在没有结束.导致越来越多的僵尸进程出现. 都知道子进程结束的时候会发一个sigchld信号给父进程.于是改进成增加一行代码: signal(SIGCHLD,deal_signal);