2012-03-30 11 views
6

Ho un'applicazione (C, Linux) che gestisce Ctrl-C SIGINT spegnendo. Vorrei aggiungere un altro gestore di segnale in modo da poter usare un'altra combinazione di tasti per "ricarica configurazione durante l'esecuzione".Quale segnale di tastiera oltre a Ctrl-C posso prendere?

Quindi sto cercando da un segnale che posso inviare al processo in foreground tramite la pressione di un tasto, che non costringe il processo a uscire o sospendere. Ce ne sono altri?

+0

Molto simile: http://stackoverflow.com/q/6764265/371250 – ninjalj

risposta

8

È possibile utilizzare ctrl+Z,

SIGTSTP 

Valore = 20

Per maggiori dettagli fare riferimento questo link.

+0

Funziona, grazie. Non avevo mai sentito parlare di SIGTSTP. – blueshift

+0

Bello. Più benvenuto –

2

Il tuo programma può utilizzare SIGUSR1 and SIGUSR2 per fare tutto ciò che vuole, ma non esiste un unico modo per inviarli come un Ctrl + C invia un segnale SIGINT. Devi usare qualcosa come kill(1) per inviare il segnale, ad es. kill -USR1 <mypid>.

+1

Corretto, quindi non è quello che voglio. – blueshift

+1

@blueshift Ma tieni presente che quelli sono i segnali che sei _supposed_ da gestire. Modificando gli altri si sta creando un comportamento inaspettato. Questo non è necessariamente negativo a meno che non stiate distribuendo il programma. –

+0

Un punto giusto. Ma questo è solo un sistema interno, incorporato, non un problema. – blueshift

3

Si può provare Ctrl - \ che è SIGQUIT se è assolutamente necessario che sia una combinazione di tasti (si può cattura di esso).

+0

Funziona, così come SIGTSTP. – blueshift

Problemi correlati