2012-03-30 21 views
6

Tengo una aplicación (C, Linux) que maneja Ctrl-C SIGINT al apagar. Me gustaría agregar otro controlador de señales para que pueda usar otro combo de teclas para "volver a cargar la configuración mientras se ejecuta".¿Qué señal de teclado aparte de Ctrl-C puedo capturar?

Estoy mirando desde una señal que puedo enviar al proceso en primer plano mediante una pulsación de tecla, que no obliga al proceso a detenerse o suspenderse. ¿Hay otros?

+0

Muy similar: http://stackoverflow.com/q/6764265/371250 – ninjalj

Respuesta

8

Puede utilizar ctrl+Z,

SIGTSTP 

Valor = 20

Para más información lea esta link.

+0

Esto funciona, gracias. Nunca había oído hablar de SIGTSTP. – blueshift

+0

Agradable. La mayoría Bienvenido –

2

Su programa puede usar SIGUSR1 and SIGUSR2 para hacer lo que quiera, pero no hay una forma de envío único como enviar Ctrl + C una señal SIGINT. Tienes que usar algo como kill(1) para enviar la señal, p. kill -USR1 <mypid>.

+1

Correcto, entonces eso no es lo que quiero. – blueshift

+1

@blueshift Pero tenga en cuenta que esas son las señales que se supone que debe manejar. Al cambiar a los demás, estás creando un comportamiento inesperado. Esto no es necesariamente malo a menos que esté distribuyendo el programa. –

+0

Un punto justo. Pero esto es solo interno, sistema integrado, no es un problema. – blueshift

3

Usted puede intentar Ctrl - \ que es SIGQUIT si es absolutamente necesario que sea una combinación de teclas (que puede atraparlo).

+0

Funciona, al igual que SIGTSTP. – blueshift

Cuestiones relacionadas