- 论坛徽章:
- 0
|
fork以后父进程退出子进程会收到信号么?
原帖由 "win_hate" 发表:
不要胡说,要看清楚别人问什么。楼主问的是: 父进程死了 与 子进程收到信号 之间是否有因果关系。
如果你贴出来的算,那么父进程死后,你向子进程 kill 一个,这样算不算?
我没有胡说啊。举个例子来说,如果你登陆到某个系统,从你自己的login shell命令行启动了一个程序,该程序未退出前,你用另外的一个telnet session登录到同一个系统,查出刚刚那次登陆的login shell的pid,用kill命令将那个shell杀掉,这时候再ps,你会发现刚才你启动的那个程序也被终止了,原因就在于那个程序是那个login shell的子进程,你在杀掉那个login shell的时候,那个还没运行完的程序收到了SIGHUP,SIGHUP的缺省行为是终止收到该信号的进程,所以你的程序也就被强行终止了。
父进程(也就是那个login shell,同时也是那个控制终端的终端控制进程)退出, 直接导致了其子进程收到SIGHUP,这就是父进程结束导致子进程收到信号的例子, 属于我所说的第一种情况啊, 怎么能说我是在胡说呢? |
|