キーボードショートカットを使用したSIGTERM


41

私は、端末内で、ということを知っているCtrl+ Cキーボードショートカットがお送りしますSIGINT現在のフォアグラウンド・プロセスにシグナルを。現在のプロセスに送信するため、SIGTERMまたはSIGKILL現在のプロセスにキーボードショートカットを設定する方法はありますか?時間を節約できると思います。

私は走っている Ubuntu 11.04


回答:


24

sttyはこれを制御する責任がありますが、既に1つのセットアップがある場合があります。以下を実行して確認できます。

$ 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      

最後の数行はおなじみのはずです。^ C = intrは質問で言及したものです。次の方法で設定方法を確認できます。

$ man stty

13
$ stty -eBSDは、Ubuntuの使用のために$ stty -a、参照しますintr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D;
dukedave

1
ステータスのシグナルをフックすることに興味があるので、「ステータス」キーストローク「ctrl- @」について疑問に思っています。それはシグナルですか?
アンドリューウルフ14

1
ショートカットが^\ 送信しますSIGQUIT
イオアニスフィリピディス18

17

私は、端末内で、ということを知っているCtrl+ Cキーボードショートカットは、現在のフォアグラウンドプロセスにSIGINTシグナルを送信します。

あなたの知識は2つの点で間違っています:

  1. シグナルは、フォアグラウンドプロセスグループに送信されます
  2. それがその時にたまたま設定された特殊文字である場合にのみCTRL+ Cです。(これはほとんどの最新システムのデフォルトですが、歴史的にはDELキャラクターか何かでした。)

SIGTERMまたはSIGKILLを現在のプロセスに送信するためのキーボードショートカットを設定する方法はありますか?

いいえ。回線制御は、送信される信号を制御します。これらの信号は配線されています。彼らは、(標準的なUnixで)しているSIGHUPSIGINTSIGTTOUSIGTTINSIGQUIT、とSIGTSTP。回線制御によって生成される他のものはありません。


13

ttyで利用可能なシグナルのセットはSIGINTCtrl+ C)、SIGTSTPCtrl+ Z)、およびSIGQUITCtrl+ \)です。それらに異なる文字を割り当てることができますが、利用可能な信号はそれらだけです。目的のために、Ctrl+ を使用\して送信できる場合がありますがSIGQUIT、エラーのように動作し、デフォルトでコアダンプが発生します。このsttyコマンドを使用して、設定を表示および変更できます。


1
Ctrl + \ショートカットを再度見つけるには、驚くほど長く検索する必要がありました。どうもありがとう!これは、プロセスがCtrl + Cに反応しない場合でも機能するため、非常に便利です。
ルエーター
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.