2012-03-30 3 views
6

私は、シャットダウンによってCtrl-C SIGINTを処理する(C、Linux)アプリケーションを持っています。 別のシグナルハンドラを追加して、「実行中に構成をリロードする」ために別のキーストロークコンボを使用したいと考えています。Ctrl-C以外のキーボード信号を捕まえることはできますか?

私は、キーストロークでフォアグラウンドプロセスに送信できるシグナルを見ています。これは、プロセスを強制的に停止または中断することはありません。他に何かありますか?

+0

非常によく似ています:http://stackoverflow.com/q/6764265/371250 – ninjalj

答えて

8

あなたは詳細についてはctrl+Z

SIGTSTP 

値= 20

を使用することができますが、このlinkを参照してください。

+0

これは、ありがとうございます。私はSIGTSTPについて聞いたことがない。 – blueshift

+0

ニース。大歓迎です。 –

2

あなたのプログラムはSIGUSR1 and SIGUSR2を使用して任意の操作を行うことができますが、Ctrl + CがSIGINT信号を送信する方法と同じように送信する方法はありません。信号を送信するには、kill(1)のようなものを使用する必要があります。 kill -USR1 <mypid>

+1

これは正しいので、私が望むものではありません。 – blueshift

+1

@blueshiftしかし、これらはあなたが扱う信号であることに注意してください。他のものを変更することで、予期しない動作が発生します。あなたがプログラムを配布していない限り、これは必ずしも悪いことではありません。 –

+0

フェアポイント。しかし、これは内部のみの組み込みシステムであり、問​​題ではありません。 – blueshift

3

あなたは絶対にそれはキーストロークする必要がある場合(あなたそれをキャッチすることができます)SIGQUITあるCtrl - \を試すことができます。

+0

SIGTSTPと同様に動作します。 – blueshift

関連する問題