ctrl + c会将SIGINT信号发送到Linux中的父进程和子进程吗?

在终端中,我执行了一个主父进程,该进程将派生一个子进程。在父进程和子进程中,我都实现了SIGINT信号处理程序。因此,当我按“ ctrl +

c”时,是否将同时调用两个处理程序?还是我需要在父进程的处理程序中显式调用子进程的信号处理程序?

我查看了这篇文章: Ctrl-C如何终止子进程?表示“ SIGINT信号由终端线路规则生成,并广播到终端的

进程组中的所有进程 ”。我只是不太了解“前台流程组”的含义。

谢谢,

回答:

在父进程和子进程中,我都实现了SIGINT信号处理程序。因此,当我按“ ctrl + c”时,是否将同时调用两个处理程序?

是的,他们俩都会收到SIGINT

还是我需要在父进程的处理程序中显式调用子进程的信号处理程序?

“调用”另一个进程的信号处理程序没有任何意义。如果两者都安装了处理程序,那么一旦接收到信号,它们就会被调用SIGINT

我只是不太了解“前台流程组”的含义。

通常,与控制终端关联的进程是前台进程,其进程组称为 前台进程组。 从命令行启动进程时,它是前台进程:

例如

$ ./script.sh # foreground process

$ ./script & # background process

我建议您阅读ttyThe TTY

demystified进行详细说明。

以上是 ctrl + c会将SIGINT信号发送到Linux中的父进程和子进程吗? 的全部内容, 来源链接: utcz.com/qa/428493.html

回到顶部