Chinaunix

标题: 孤儿进程在用户中断终端时是否会受到sighup信号 [打印本页]

作者: HunterForPig    时间: 2006-11-11 22:07
标题: 孤儿进程在用户中断终端时是否会受到sighup信号
int main(int argc, char* argv[])
{
        pid_t pid = -1;
        signal(SIGHUP,sig_usr);
        if((pid=fork())<0)
                {
                        perror("fork error");
                        return -1;
                }
                if(pid >0)
                {
                        exit(0);
                }

                while(1)
                {
                        pause();
                }
}

如上,当进程成为孤儿进程后,用户登出terminal,孤儿进程的就没有终端,
那是否意味着此刻他已成了一个守护进程!
作者: langue    时间: 2006-11-11 22:17
通过两次 fork(),爷爷进程先 fork() 出爸爸进程,爸爸进程再 fork() 出儿子来,这时候爸爸被杀了或者病逝或者自然死亡可是儿子还活着,儿子就成孤儿了,被孤儿院院长(init)收养
作者: HunterForPig    时间: 2006-11-12 08:44
楼上说的跟我的问题有什么关系
作者: longshort    时间: 2006-11-12 18:29
如上,当进程成为孤儿进程后,用户登出terminal,孤儿进程的就没有终端,
那是否意味着此刻他已成了一个守护进程!

你的程序中没有把自己主动交给孤儿院院长(init),一旦你退出登录,你的孤儿也就夭折了!
楼上说的跟我的问题有什么关系

还是有关系滴....

爷爷和爸爸都莫名其妙地没了,你孤儿还能好好地活么?
作者: lanying_wzw    时间: 2007-09-24 23:48
子进程是前台进程组,当shell退出时,也就是session leader退出时,会向所有前台进程组发送SIGHUP信号的

[ 本帖最后由 lanying_wzw 于 2007-9-29 13:53 编辑 ]




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2