2012-03-30 3 views
6

Ich habe eine (C, Linux) Anwendung, die Ctrl-C SIGINT durch Herunterfahren behandelt. Ich möchte einen weiteren Signal-Handler hinzufügen, so dass ich eine andere Tastenkombination für "Konfiguration während der Ausführung neu laden" verwenden kann.Welches Tastatursignal kann ich außer Ctrl-C fangen?

So sehe ich von einem Signal aus, das ich per Tastendruck in den Vordergrund schicken kann, was den Prozess nicht zum Beenden oder Aussetzen zwingt. Gibt es noch andere?

+0

Sehr ähnlich: http://stackoverflow.com/q/6764265/371250 – ninjalj

Antwort

8

Sie können ctrl+Z verwenden,

SIGTSTP 

Wert = 20

Weitere Details finden diese link.

+0

Das funktioniert, danke. Ich hatte noch nie von SIGTSTP gehört. – blueshift

+0

Schön. Am meisten Willkommen. –

2

Ihr Programm kann SIGUSR1 and SIGUSR2 verwenden zu tun, was es will, aber es gibt keinen einhubigen Weg, um sie zu senden, wie zB wie ein Strg + C sendet ein Signal SIGINT. Sie müssen etwas wie kill(1) verwenden, um das Signal zu senden, z.B. kill -USR1 <mypid>.

+1

Korrekt, das ist nicht das, was ich will. – blueshift

+1

@blueshift Aber denken Sie daran, dass dies die Signale sind, die Sie _supposed_ behandeln müssen. Indem Sie die anderen ändern, erzeugen Sie unerwartetes Verhalten. Dies ist nicht unbedingt schlecht, es sei denn, Sie verteilen das Programm. –

+0

Ein schöner Punkt. Aber das ist nur intern, eingebettetes System, kein Problem. – blueshift

3

Sie können Ctrl - \ versuchen, die SIGQUIT ist, wenn Sie unbedingt brauchen einen Tastendruck zu sein (Sie kann es fangen).

+0

Funktioniert, wie SIGTSTP. – blueshift

Verwandte Themen