捕获所有会阻止程序的信号

时间:2016-10-13 21:46:35

标签: c signals sigint sigterm

我有一个程序可以捕获任何终止信号。目前所做的只是捕捉 Ctrl + C 。除了 Ctrl + C 之外,我希望能够捕获 Ctrl + Z Ctrl + \ 。这是我的代码的一部分。

if (signal(SIGINT, SIG_IGN) == SIG_ERR)
    fprintf(stderr,"Error: Can't catch SIGINT\n");

if (signal(SIGTERM, SIG_IGN) == SIG_ERR)
    fprintf(stderr,"Error: Can't catch SIGTERM\n");

// do stuff

我需要实现哪些其他信号来捕捉 Ctrl + Z Ctrl + \ ?什么引发了SIGTERM?提前谢谢。

1 个答案:

答案 0 :(得分:2)

Ctrl + Z 引发SIGTSTP。 Ctrl + \ 引发SIGQUIT。

我不知道任何提升SIGTERM的组合键,但当然您可以使用kill -TERM <pid><pid>替换为进程ID来发送它。 (或仅kill <pid>; SIGTERM是kill

的默认信号

请注意,您无法捕获SIGSTOP或SIGKILL。