2012-03-30 37 views
6

我有一个(C,Linux)应用程序,通过关闭来处理Ctrl-C SIGINT。 我想添加另一个信号处理程序,以便我可以使用另一个按键组合来“在运行时重新加载配置”。除了Ctrl-C,我还能捕捉到什么键盘信号?

所以我从一个信号我可以通过按键发送到前台进程,它不会强制进程退出或挂起。还有其他人吗?

+0

非常相似:http://stackoverflow.com/q/6764265/371250 – ninjalj 2012-03-30 07:12:54

回答

8

您可以使用ctrl+Z

SIGTSTP 

值= 20

欲了解更多详情,请参阅本link

+0

这工作,谢谢。我从来没有听说过SIGTSTP。 – blueshift 2012-03-30 06:17:54

+0

不错。最受欢迎的。 – 2012-03-30 07:11:21

2

你的程序可以使用SIGUSR1 and SIGUSR2做任何想做的事情,但没有单笔发送方式,比如Ctrl + C发送一个SIGINT信号。您必须使用诸如kill(1)之类的信号来发送信号,例如, kill -USR1 <mypid>

+1

正确,所以这不是我想要的。 – blueshift 2012-03-30 06:07:27

+1

@blueshift但请记住,这些是你所要处理的信号。通过改变别人,你正在创造意想不到的行为。除非你分发程序,否则这不一定是坏事。 – 2012-03-30 06:13:55

+0

公平的一点。但这只是内部的,嵌入式系统,不是问题。 – blueshift 2012-03-30 06:17:18

3

你可以试试Ctrl - \这是SIGQUIT如果你绝对需要它是一个按键(你可以可以捕捉它)。

+0

正如SIGTSTP一样有效。 – blueshift 2012-03-30 06:18:22