社区
C语言
帖子详情
UNIX程序中如何杀掉由子进程产生的defunct?
binb
2000-07-13 05:22:00
加精
kill(pid,SIGKILL)好象不行?
...全文
142
1
打赏
收藏
UNIX程序中如何杀掉由子进程产生的defunct?
kill(pid,SIGKILL)好象不行?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
genesis
2000-07-14
打赏
举报
回复
bind 你好,我觉得你的三个问题基本相同,所以一起回答吧。
你所遇到的问题主要是子进程终止,而父进程没有进行处理,产生了僵尸进程(Zombie),
即<defunct>。需要函数signal(SIGCHLD,xxx)来扑捉。结构如下:
#include <signal.h>
....
signal(SIGCHLD,sigchld);
while (1) {
if (p_id=fork())==0) {
....
exit(0);
}
else {
...
}
...
kill(p_id, SIGKILL);//这句还要不要,自己看吧
continue;
}
void sigchld(int signo)
{
int status;
while (waitpid(-1,&status,WNOHANG)>0);
return;
}
参数WNOHANG主要是防止阻塞其他运行的子进程。
W.RICHARD STEVENS大师的书都很不错,有空多看看,只可惜大师人已不在了。
少赚不少分啊。
【linux】僵尸
进程
(
Defunct
进程
)的
产生
与避免
在
UNIX
系统中,一个
进程
结束了,但是他的父
进程
没有等待(调用wait / waitpid)他,那么他将变成一个僵尸
进程
。当用ps命令观察
进程
的执行状态时,看到这些
进程
的状态栏为
defunct
。僵尸
进程
是一个早已死亡的
进程
,但在
进程
表(processs table)中仍占了一个位置(slot)。但是如果该
进程
的父
进程
已经先结束了,那么该
进程
就不会变成僵尸
进程
。因为每个
进程
结束的时候,系统都会扫描当前系统中所运行的所有
进程
,看看有没有哪个
进程
是刚刚结束的这个
进程
的
子
进程
,如果是的话,就由Init
进程
来接管他
java
defunct
怎么
杀
掉
_僵尸
进程
的
产生
和避免,如何kill
杀
掉
linux系统中的僵尸
defunct
进程
...
在
Unix
系统管理中,当用ps命令观察
进程
的执行状态时,经常看到某些
进程
的状态栏为
defunct
,这就是所谓的“僵尸”
进程
。“僵尸”
进程
是一个早已 死亡的
进程
,但在
进程
表(processs table)中仍占了一个位置(slot)。由于
进程
表的容量是有限的,所以,
defunct
进程
不仅占用系统的内存资源,影响系统的性能,而且如果其数目太多,还会导致系统瘫痪。我们知道,每个
Unix
进程
在
进程
表里都...
如何
杀
掉
defunct
进程
在
Unix
系统管理中,当用ps命令观察
进程
的执行状态时,经常看到某些
进程
的状态栏为
defunct
,这就是所谓的“僵尸”
进程
。“僵尸”
进程
是一个早已死亡的
进程
,但在
进程
表(processstable)中仍占了一个位置(slot)。由于
进程
表的容量是有限的,所以,
defunct
进程
不仅占用系统的内存资源,影响系统的性能,而且如果其数目太多,还会导致系统瘫痪。 我们知道,每个
Unix
进程
在
进程
表里都有
如何kill
杀
掉
linux系统中的僵尸
defunct
进程
在
Unix
系统管理中,当用ps命令观察
进程
的执行状态时,经常看到某些
进程
的状态栏为
defunct
,这就是所谓的“僵尸”
进程
。“僵尸”
进程
是一个早已 死亡的
进程
,但在
进程
表(processs table)中仍占了一个位置(slot)。由于
进程
表的容量是有限的,所以,
defunct
进程
不仅占用系统的内存资源,影响系统的性能,而且如果其数 目太多,还会导致系统瘫痪。 我们知道,每个
Unix
进程
在
进程
表...
linux 僵尸
进程
defunct
在
Unix
系统管理中,当用ps命令观察
进程
的执行状态时,经常看到某些
进程
的状态栏为
defunct
,这就是所谓的“僵尸”
进程
。 “僵尸”
进程
是一个早已 死亡的
进程
,但在
进程
表(processs table)中仍占了一个位置(slot)。 由于
进程
表的容量是有限的,所以,
defunct
进程
不仅占用系统的内存资源,影响系统的性能,而且如果其数 目太多,还会导致系统瘫痪。 我们知道,每个
Unix
进...
C语言
69,381
社区成员
243,073
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章