SIGINT也从儿童流程收到

时间:2011-11-08 17:07:33

标签: c unix signals signal-handling

我有2个程序(由我编写)。第一个名为“MAN”的人将调用“D”(第二个),这个过程将在后台运行,直到以某种方式终止。

我想在不终止D的情况下终止MAN。

我尝试使用ctrl + c终止MAN并正确终止man(我拦截了sigint信号),现在我希望D继续运行,但是当MAN接收到CTRL + C时,D也接收它。

如何处理这种情况?重要的是,我希望保持仅运行D并以CTRL + C结束的可能性。当我通过MAN运行时出现问题,我不想用CTRL + C终止它,它应该只到达MAN。< / p>

有什么建议吗?

1 个答案:

答案 0 :(得分:5)

子进程(D)应通过调用setsid(2)与控制终端取消关联。