SIGINT也从儿童流程收到

Fir*_*DoL 0 c unix signals signal-handling

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

我想终止MAN而不终止D.

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

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

有什么建议吗?

chi*_*ill 5

子进程(D)应通过调用与控制终端解除关联setsid(2).