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

Catch all signals that would stop a program

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

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 + ZCtrl + \?是什么引发了 SIGTERM?提前致谢。

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

我不知道有任何组合键会引发 SIGTERM,但是您当然可以使用 kill -TERM <pid><pid> 替换为进程 ID 来发送它。 (或者只是 kill <pid>;SIGTERM 是 kill 的默认信号)

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