- 论坛徽章:
- 11
|
所谓僵尸进程, 其实就是 SIGCHILD 没有被父进程处理的进程, SIGCHILD 被处理只有在中断, 异常, 及系 ...
zylthinking 发表于 2011-12-07 15:18 ![]()
我日了, 还去看源码。。。。。。连APUE 上的都没有记清:
SIGCHLD SIG_DFL 行为是忽略 SIGCHILD, SIG_IGN 才是在 do_signal 里面偷偷wait
代码里明明写着一个斗大的
643 ka = ¤t->sig->action[signr-1];
644 if (ka->sa.sa_handler == SIG_IGN) {
645 if (signr != SIGCHLD)
646 continue;
647 /* Check for SIGCHLD: it's special. */
648 while (sys_wait4(-1, NULL, WNOHANG, NULL) > 0) ------------------这里
649 /* nothing */;
650 continue;
651 }
愣是瞎眼看不见。。。。。。。。。。。。 |
|