Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
如果我们从 shell 启动一个前台进程,并使用 ctrl-c 向它传递一个它不处理并因此退出的 SIGINT,那么 shell 如何知道该进程是否被 SIGINT 杀死。我的假设是该进程不会通过调用 exit 进入僵尸状态。
谢谢
shell 使用来自wait(2)家庭的函数来等待孩子被杀死/终止,并检索杀死它的信号(如果有)。
wait(2)
不处理信号的应用程序实际上会执行默认处理程序(在 的情况下会杀死应用程序SIGINT)。将信号传递给应用程序并调用处理程序(无论是默认的还是由应用程序设置的)由操作系统处理,因此操作系统可以注意到哪个信号杀死了应用程序,例如相应地设置退出代码。shell 只显示退出代码,但它是设置它的操作系统。
SIGINT