| mygod 回复于:2002-08-22 13:29:03
|
这个问题已经在这个论坛讨论过多次,原因是父进程没有处理子进程结束的信号就结束了,具体的可以参考fanqiang.com上的相关文档或在本论坛查找
|
| betydu 回复于:2002-08-22 15:03:29
|
to mygod: 其实我在本论坛查找过,但一直没找到相关内容。能不能请你转贴一些信息,谢了。
|
| mygod 回复于:2002-08-22 15:13:27
|
http://oldhand.org/article/200204/20020400000302_1.xml
|
| yyl66 回复于:2002-08-23 12:53:30
|
为什么斑主回答问题这么草率! 以下可以防止僵尸进程的出现! void add_fork(int signo) {
pid_t pid; int stat; pid=waitpid(-1,&stat,WNOHANG); printf("退出进程号为:%d 系统新增进程序。\n",pid);
return; } main() { signal(SIGCHLD,add_fork); if (fork()==0) { printf("%d process run....",getpid()); do_your_thing(); } }
|
| mygod 回复于:2002-08-23 12:54:16
|
你看好了,我现在不是斑竹了!!!
|
| yyl66 回复于:2002-08-23 12:58:48
|
对不起,我不知道啊!
|
| yuejw 回复于:2002-08-30 11:10:37
|
不想查看子进程退出码的话直接signal(SIGCLD, SIG_IGN)就可以了。
|
| qtjqtjqtj 回复于:2002-08-30 16:19:08
|
fork()两次可 避免僵尸进程
|
| 离了水的蛤蟆 回复于:2002-08-31 12:14:47
|
我觉得qtjqtjqtj的注意不怎么样,还是按yuejw和yyl66的做吧。
|
| iloveunix 回复于:2002-09-02 11:27:36
|
fork()两次,就可以避免僵尸进程!
|
| betydu 回复于:2002-09-03 10:56:15
|
版主:能否介绍一下SIGCLD和SIGCHLD这两个信号的区别啊?
|
| yuejw 回复于:2002-09-03 14:25:19
|
一样的。
|
| hjqq 回复于:2002-11-03 22:02:09
|
很想知道SIGCLD和SIGCHLD这两个信号的区别,希望告知。谢谢!
|
| beggar 回复于:2002-11-03 23:08:28
|
看为什么Wait返回-1贴
|
| ilike911 回复于:2002-11-05 14:36:34
|
#define SIGCHLD SIGCLD
就是这样
signal(SIGCHLD, SIG_IGN) 显然是最简单的回收进程的方法
|
| fatmonk 回复于:2002-11-05 14:47:42
|
SIGCHLD是POSIX标准中定义的,SIGCLD是SysV的事实标准,两个信号想表达的意思一样,只是出处不同,而今大多数UNIX都把两个信号define成同一个值。推荐用SIGCHLD。
|
| beggar 回复于:2002-11-06 19:03:01
|
SystemV和svr4处理SIGCLD的方式与SIGCHLD不同.BSD两者相同
|
| 西北风 回复于:2002-11-26 20:14:19
|
在比较繁忙的应用中使用WAIT也无法解决僵尸进程。以前有经历在涉及数据库的程序中,当数据库异常时会出现不正常的僵尸进程,而程序中实际上已经使用了wait命令,并且捕捉了SIGCLD信号。系统很忙时估计SIGCLD信号传递不正常。
|
| htldm 回复于:2002-12-21 12:21:38
|
[quote][b]下面引用由[u]离了水的蛤蟆[/u]在 [i]2002/08/31 12:14pm[/i] 发表的内容:[/b] 我觉得qtjqtjqtj的注意不怎么样,还是按yuejw和yyl66的做吧。 [/quote] qtjqtjqtj说得对啊! fork 两次,把它交给init进程,有系统接管,有多放心!
|
| 罗格纳 回复于:2003-12-05 17:14:01
|
fork两次是为了产生deamon进程,
实际上只要父进程退出,子进程就已经转交给init了!
|
| hrg7389 回复于:2004-02-23 09:05:41
|
[quote:30bdb48916][b:30bdb48916]下面引用由[u:30bdb48916]离了水的蛤蟆[/u:30bdb48916]在 [i:30bdb48916]2002/08/31 12:14pm[/i:30bdb48916] 发表的内容:[/b:30bdb48916]
我觉得qtjqtjqtj的注意不怎么样,还是按yuejw和yyl66的做吧。
[/quote:30bdb48916]
qtjqtjqtj说得对啊! fork 两次。我就一直使用这种方式,效果很好。
|