1

我有两个过程。我正在从控制台(bash)生成第一个进程。第一个过程是实习生产生第二个过程。第二个过程是从文件中读取,直到它从用户那里得到一个 SIGINT 或 SIGTERM 信号。但是当我按下 ctrl+c 时,bash 程序正在将信号传递给第一个进程,所以它被杀死了,我的应用程序宕机了,因为我没有在那里处理它。

所以我的问题是如何强制 bash 程序将信号传递给第二个进程?

谢谢。

4

1 回答 1

1

这个 bash 不生成信号,tty 生成信号给活动进程。将子进程设置为活动(通过使用tcsetpgrp),以便它将接收来自 tty 的信号。

在此之前,请阅读有关 tty 如何工作的文章。

于 2013-07-15T10:16:55.677 回答