[英]Catch all signals that would stop a program
我有一个程序可以捕获任何终止信号。 当前所做的只是捕获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
? 提前致谢。
Ctrl + Z引发SIGTSTP。 Ctrl + \\引发SIGQUIT。
我不知道会引起SIGTERM的任何键组合,但是您当然可以使用kill -TERM <pid>
将<pid>
替换为进程ID来发送它。 (或者只是kill <pid>
; SIGTERM是kill
的默认信号)
请注意,您无法捕获SIGSTOP或SIGKILL。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.