Klavye kısayollu SIGTERM


41

Bir terminalin içinde Ctrl+ Cklavye kısayolunun SIGINTgeçerli ön plan işlemine bir sinyal göndereceğini biliyorum . Geçerli işleme göndermek SIGTERMve hatta göndermek için bir klavye kısayolu ayarlamanın bir yolu var mı SIGKILL? Bana biraz zaman kazandırabilir diye düşünüyorum.

koşuyorum Ubuntu 11.04


Yanıtlar:


24

stty bunu kontrol etmekten sorumludur, zaten bir kurulumunuz olabilir. Yaparak kontrol edebilirsiniz:

$ stty -e
speed 38400 baud; 53 rows; 225 columns;
lflags: icanon isig iexten echo echoe echok echoke -echonl echoctl
        -echoprt -altwerase -noflsh -tostop -flusho pendin -nokerninfo
        -extproc
iflags: -istrip icrnl -inlcr -igncr ixon -ixoff -ixany imaxbel -iutf8
        -ignbrk brkint -inpck ignpar -parmrk
oflags: opost onlcr -oxtabs -onocr -onlret
cflags: cread cs8 -parenb -parodd -hupcl -clocal -cstopb -crtscts
        -dsrflow -dtrflow -mdmbuf
discard dsusp   eof     eol     eol2    erase   intr    kill    lnext   
^O      ^Y      ^D      <undef> <undef> ^?      ^C      ^U      ^V      
min     quit    reprint start   status  stop    susp    time    werase  
1       ^\      ^R      ^Q      ^@      ^S      ^Z      0       ^W      

Son birkaç satır tanıdık gelmelidir, ^ C = intr, sorunuzda bahsettiğiniz satırdır. Nasıl ayarlanabileceğini daha fazla okuyabilirsiniz:

$ man stty

13
$ stty -eolan BSD , Ubuntu kullanımı için $ stty -a, görmek için:intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D;
dukedave

1
Durum için bir sinyal çengel yapmakla ilgileniyorum, bu yüzden 'durum' tuş vuruşunu merak ediyorum, "ctrl- @". Bu bir sinyal mi?
Andrew Wolfe

1
Kısayol ^\ gönderir SIGQUIT.
Ioannis Filippidis,

17

Bir terminalin içinde, Ctrl+ Cklavye kısayolunun geçerli ön plan işlemine SIGINT sinyali göndereceğini biliyorum .

Bilginiz iki noktada yanlıştır:

  1. Sinyal ön plan işlem grubuna gönderilir .
  2. Yalnızca CTRL+ C, o sırada yapılandırılmış olan özel karakterse. (Bu, çoğu modern sistemde varsayılandır, ancak tarihsel olarak DELkarakter veya başka bir şey olabilirdi.)

Mevcut işleme SIGTERM veya hatta SIGKILL göndermek için bir klavye kısayolu ayarlamanın bir yolu var mı?

Hayır. Çizgi disiplini, hangi sinyallerin gönderildiğini ve bu sinyallerin kablolu olduğunu kontrol eder. Onlar (standart Unix olarak) vardır SIGHUP, SIGINT, SIGTTOU, SIGTTIN, SIGQUIT, ve SIGTSTP. Çizgi disiplini tarafından oluşturulan başka hiç kimse yoktur.


13

Bir tty için mevcut sinyaller kümesi SIGINT( Ctrl+ C), SIGTSTP( Ctrl+ Z) ve SIGQUIT( Ctrl+ \) ' dır . Onlara farklı karakterler atayabilirsiniz, ancak bunlar yalnızca mevcut sinyallerdir. Amaçlarınız için bir hata gibi davransa ve varsayılan olarak bir çekirdek dökümü olmasına rağmen göndermek için Ctrl+ kullanabilirsiniz . Ayarları görmek ve değiştirmek için komutu kullanabilirsiniz .\SIGQUITstty


1
Ctrl + \ kısayolunu tekrar bulmak için şaşırtıcı derecede uzun arama yapmak zorunda kaldım. Çok teşekkürler! Bu, işlem Ctrl + C'ye tepki vermediğinde hala çalıştığı için çok kullanışlıdır.
luator
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.