SIGTERM dengan pintasan keyboard


Jawaban:


24

stty bertanggung jawab untuk mengendalikan ini, Anda mungkin sudah memiliki satu pengaturan. Anda dapat memeriksa dengan melakukan:

$ 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      

Beberapa baris terakhir seharusnya terlihat familier, ^ C = intr adalah yang Anda sebutkan dalam pertanyaan Anda. Anda dapat membaca cara mengatur lebih banyak melalui:

$ man stty

13
$ stty -eadalah BSD , untuk penggunaan Ubuntu $ stty -a, untuk melihat:intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D;
dukedave

1
Saya tertarik mengaitkan sinyal untuk status, jadi saya ingin tahu tentang 'status' penekanan tombol, "ctrl- @". Apakah itu sinyal?
Andrew Wolfe

1
Pintasan ^\ dikirimkan SIGQUIT.
Ioannis Filippidis

17

Saya tahu bahwa di dalam terminal, Ctrl+ Cpintasan keyboard akan mengirim sinyal SIGINT ke proses latar depan saat ini.

Pengetahuan Anda salah tentang dua hal:

  1. Sinyal dikirim ke grup proses latar depan .
  2. Hanya CTRL+ Cjika itu adalah karakter khusus yang akan dikonfigurasi pada saat itu. (Itu standar pada kebanyakan sistem modern, tetapi secara historis bisa jadi DELkarakter atau sesuatu yang lain.)

Apakah ada cara untuk mengatur pintasan keyboard untuk mengirim SIGTERM atau bahkan SIGKILL ke proses saat ini?

Tidak. Garis disiplin mengontrol sinyal apa yang dikirim, dan sinyal itu sudah tertanam. Mereka adalah (dalam standar Unix) SIGHUP, SIGINT, SIGTTOU, SIGTTIN, SIGQUIT, dan SIGTSTP. Tidak ada yang dihasilkan oleh disiplin garis.


13

Set sinyal yang tersedia untuk tty adalah SIGINT( Ctrl+ C), SIGTSTP( Ctrl+ Z) dan SIGQUIT( Ctrl+ \). Anda dapat menetapkan karakter yang berbeda untuk mereka, tetapi hanya itu sinyal yang tersedia. Untuk keperluan Anda, Anda mungkin dapat menggunakan Ctrl+ \untuk mengirim SIGQUIT, meskipun itu bertindak seperti kesalahan dan menyebabkan dump inti secara default. Anda dapat menggunakan sttyperintah untuk melihat dan mengubah pengaturan.


1
Saya harus mencari sangat lama untuk menemukan Ctrl + \ shortcut lagi. Terima kasih banyak! Ini sangat berguna karena masih berfungsi saat proses tidak bereaksi terhadap Ctrl + C.
luator
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.