1

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

谢谢

4

2 回答 2

1

shell 使用来自wait(2)家庭的函数来等待孩子被杀死/终止,并检索杀死它的信号(如果有)。

于 2013-03-03T17:50:03.160 回答
0

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

于 2013-03-03T17:46:56.850 回答