我正在Linux 3.0中编写一个系统调用,当我等待某个事件发生时(使用waitqueue),我想检查一个待处理的SIGKILL,如果有一个发生,我想要{{1任务尽快死亡。据我所知,一旦我从系统调用返回(嗯,真的:一旦进程进入用户模式)返回,内核检查挂起的信号,并在看到SIGKILL后,内核将杀死current
返回用户模式之前。
问题:我的上述假设是否正确,SIGKILL如何运作?我的另一个选择是看到致命的SIGKILL正在等待,而不是从系统调用返回,我只是执行current
。我希望尽可能与其他Linux用例保持一致......而且似乎只是从syscall返回就是其他代码所做的事情。我只想确保以上关于SIGKILL如何杀死任务的假设是正确的。
答案 0 :(得分:1)
系统调用退出后发生信号检查,是的。
参见例如ret_from_sys_call
的{{1}}。