linux ctrl c 子进程,ctrl c会向Linux中的父进程和子进程发送SIGINT信号吗?

在终端中,我执行了一个主父进程,它将分叉子进程.在父进程和子进程中,我实现了一个SIGINT信号处理程序.

所以当我按“ctrl c”时,两个处理程序是否同时被调用?或者我是否需要在父进程的处理程序中显式调用子进程的信号处理程序?

我查了一下这篇文章:

How does Ctrl-C terminate a child process?

其中说“SIGINT信号由终端线路规则生成,并广播到终端的前台进程组中的所有进程”.我只是不太明白“前台进程组”是什么意思.

谢谢,

解决方法:

In both the parent and child processes I implemented a SIGINT signal

handler. So when I press “ctrl+c”, will both the handlers be called at

the same time?

是的,他们都会收到SIGINT.

Or do I need to call the child process’s signal handler explicitly in

the parent process’s handler?

“调用”另一个进程’信号处理程序没有意义.如果进程都安装了一个处理程序,那么一旦收到信号SIGINT就会调用它们.

I just didn’t quite understand what does “foreground process group”

means.

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

例如.

$./script.sh # foreground process

$./script & # background process

标签:linux,fork,signals

来源: https://codeday.me/bug/20191006/1858657.html

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值