shell如何识别SIGINT到其中一个作业

时间:2013-03-03 17:26:39

标签: shell signals

如果我们从shell启动一个前台进程,并使用ctrl-c为它提供一个它没有处理并因此退出的SIGINT,那么shell如何知道进程是否被SIGINT杀死。我的假设是,进程不会通过调用exit进入僵尸。

由于

2 个答案:

答案 0 :(得分:0)

不处理信号的应用程序实际上执行默认处理程序(在SIGINT的情况下杀死应用程序)。向应用程序发送信号并调用处理程序(无论是默认的还是由应用程序设置)由操作系统处理,因此操作系统可以注意哪个信号杀死了应用程序,例如相应地设置退出代码。 shell只显示退出代码,但它是设置它的操作系统。

答案 1 :(得分:0)

shell使用wait(2)系列中的函数来等待子项被终止/终止,并检索杀死它的信号(如果有的话)。