2012-03-30 75 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