2012-03-30 21 views
6

Ctrl-C SIGINT'i kapatarak işleyen bir (C, Linux) uygulamasına sahibim. Başka bir sinyal işleyici eklemek istiyorum, böylece "çalışırken yeniden yapılandırma" için başka bir tuşa basabilirim.Ctrl-C dışında hangi klavye sinyallerini yakalayabilirim?

Bu yüzden, önleme işlemine tuş vuruşuyla gönderebileceğim bir sinyalden bakıyorum; bu, işlemi durdurmaya veya askıya almaya zorlamaz. Başka var mı?

+0

Çok benzer: http://stackoverflow.com/q/6764265/371250 – ninjalj

cevap

8

,

SIGTSTP 

Değeri = Daha fazla ayrıntı için 20

bu link bakın.

+0

Bu, teşekkürler. SIGTSTP'yi hiç duymamıştım. – blueshift

+0

Güzel. En Hoş Geldiniz. –

2

Programınız, istediği her şeyi yapmak için SIGUSR1 and SIGUSR2'u kullanabilir, ancak Ctrl + C'nin bir SIGINT sinyalini nasıl gönderdiği gibi onları göndermek için tek vuruş yolu yoktur. Sinyali göndermek için kill(1) gibi bir şey kullanmalısınız, örn. kill -USR1 <mypid>.

+1

Doğru, yani istediğim bu değil. – blueshift

+1

@blueshift Ancak, bunların işlemek için _supposed_ sinyalleri olduğunu unutmayın. Diğerlerini değiştirerek beklenmedik davranışlar yaratıyorsunuz. Programı dağıtmıyorsanız, bu mutlaka kötü değildir. –

+0

Adil bir nokta. Ama bu sadece dahili, gömülü sistem, sorun değil. – blueshift

3

Sen kesinlikle bir tuş (eğer can yakalamak o) olması gerektiğinde SIGQUIT olduğunu Ctrl - \ deneyebilirsiniz. Sen ctrl+Z kullanabilirsiniz

+0

SIGTSTP gibi çalışır. – blueshift

İlgili konular