当前位置: 技术问答>linux和unix
子进程为什么没有继承父进程的信号
来源: 互联网 发布时间:2016-07-24
本文导语: 在程序中设置超时信号,在时间到的时候使进程退出。然后创建子进程。 程序在运行过程中,主进程收到了超时信号并退出,但各子进程并没有退出,是怎么回事呢? signal(SIGALRM, sig_handler); alarm(iTimeToPas...
在程序中设置超时信号,在时间到的时候使进程退出。然后创建子进程。
程序在运行过程中,主进程收到了超时信号并退出,但各子进程并没有退出,是怎么回事呢?
程序在运行过程中,主进程收到了超时信号并退出,但各子进程并没有退出,是怎么回事呢?
signal(SIGALRM, sig_handler);
alarm(iTimeToPass);
pid_t pid = fork();
if ( 0 > pid )
{
。。。。。
}
else if ( 0 == pid )
{
。。。。。。。
}
else
{
。。。。。。
}
void sig_handler(int signum)
{
。。。。。。
exit(0);
}
|
子进程只会继承父进程的信号处理方式。并不是说父进程后面应该收到的信号,子进程也该收到。所以你这里子进程不退出是因为没有SIGALM信号发送到子进程。