免费注册 查看新帖 |

Chinaunix

广告
  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1813 | 回复: 8
打印 上一主题 下一主题

signal信号处理和僵死进程问题,能讨论一下吗? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-02-27 20:39 |只看该作者 |倒序浏览
在FORK子进程后,要处理僵死进程,是不是要用SIGNAL函数?
能讨论一下用法吗?
在UNIX里有那些方法可以避免或者处理僵死进程?????

论坛徽章:
0
2 [报告]
发表于 2004-02-28 01:00 |只看该作者

signal信号处理和僵死进程问题,能讨论一下吗?

1 fork 两次, 让 init 领养。

2 捕捉 SIGCHLD, 并 wait 之。

论坛徽章:
0
3 [报告]
发表于 2004-02-28 12:00 |只看该作者

signal信号处理和僵死进程问题,能讨论一下吗?

简单用wait并不 足以很好的防止僵死进程,由于UNIX系统信号一般并不 排队,
当客户与服务器建立多个连接时,当客户结束连接时,即使服务器端用wait,也同样会产生僵死进程的,而且数目还不定,所以最好用用下面方法:
while((pid=waitpid(-1,&stat,WHOHANG))>;0)

等带一个被终子的进程,并且没有已经终止的子进成时不要阻塞

论坛徽章:
0
4 [报告]
发表于 2004-02-29 21:14 |只看该作者

signal信号处理和僵死进程问题,能讨论一下吗?

但是我看到有些程序里面用SIGNAL函数忽略了SIGCHLD信号,这样是不是没有处理僵死进程?
能讲讲僵死进程是怎么产生的吗?

论坛徽章:
0
5 [报告]
发表于 2004-03-01 10:04 |只看该作者

signal信号处理和僵死进程问题,能讨论一下吗?

去看看<GNU LINUX 编程指南 >;或者<UNIX 网络编程>;卷1,
那里说的 很清楚

论坛徽章:
0
6 [报告]
发表于 2004-03-01 11:24 |只看该作者

signal信号处理和僵死进程问题,能讨论一下吗?

原帖由 "win_hate" 发表:
1 fork 两次, 让 init 领养。

  1. #include <sys/types.h>;
  2. #include <sys/wait.h>;
  3. #include "ourhdr.h"

  4. int main(void)
  5. {
  6.     pid_t pid;
  7.    
  8.     if ((pid=fork())<0)
  9.          err_sys("fork error");
  10.     else if (pid==0){
  11.        if ((pid=fork())<0)
  12.            err_sys("fork error");
  13.        else if (pid>;0)
  14.               exit(0);
  15.               
  16.        sleep(2);
  17.        printf("second child,parent pid=%d\n",getppid());
  18.        exit(0);
  19.        }
  20.        if (waitpid(pid,null,0)!=pid)
  21.             err_sys("waitpid error");
  22.        exit(0);      
  23. }
复制代码

论坛徽章:
0
7 [报告]
发表于 2004-03-01 12:09 |只看该作者

signal信号处理和僵死进程问题,能讨论一下吗?

忽略了就等于处理了.
最好还是用shl的方案.

论坛徽章:
0
8 [报告]
发表于 2004-03-01 13:07 |只看该作者

signal信号处理和僵死进程问题,能讨论一下吗?

看你用的是什么系统,如果是linux你直接忽略掉就成。如果是solaris系统那么要sigaction并设置一个flag记不清楚了,可以去man

论坛徽章:
0
9 [报告]
发表于 2004-03-01 20:51 |只看该作者

signal信号处理和僵死进程问题,能讨论一下吗?

谢谢各位解答!!!资质底,还是不太明白,自己去看书好了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP