当前位置: 技术问答>linux和unix
信号处理器为什么回收不了子进程?
来源: 互联网 发布时间:2015-03-11
本文导语: 信号处理器为什么回收不了子进程? sigset(SIGCHLD, sig_child); 信号处理器如下: void sig_child(int signo) { if(signo == SIGCHLD){ while(1){ pid = waitpid(-1, stat, WNOHANG); ...
信号处理器为什么回收不了子进程?
sigset(SIGCHLD, sig_child);
信号处理器如下:
void sig_child(int signo)
{
if(signo == SIGCHLD){
while(1){
pid = waitpid(-1, stat, WNOHANG);
if(pid > 0){
//正常回收
break;
}
else
break;
}
}
}
我kill -9把子进程杀掉后,发现它们全变为僵死进程了
sigset(SIGCHLD, sig_child);
信号处理器如下:
void sig_child(int signo)
{
if(signo == SIGCHLD){
while(1){
pid = waitpid(-1, stat, WNOHANG);
if(pid > 0){
//正常回收
break;
}
else
break;
}
}
}
我kill -9把子进程杀掉后,发现它们全变为僵死进程了
|
应该是signal
另外
void sig_child(int signo)
{
int stat;
...
pid = waitpid(-1, &stat, WNOHANG|WUNTRACED);
...
}
另外
void sig_child(int signo)
{
int stat;
...
pid = waitpid(-1, &stat, WNOHANG|WUNTRACED);
...
}
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。