terminal – キーボードショートカットによるSIGTERM

console kill process signal terminal

ターミナル内でCtrl+Cのキーボードショートカットを使うと、現在のフォアグラウンドプロセスにSIGINTの信号が送られることは知っています。現在のプロセスにSIGTERMSIGKILLを送るキーボードショートカットを設定する方法はありますか?そうすれば時間の節約になると思うのですが

私はUbuntu 11.04を実行しています

  48  julkiewicz  2011-10-04


ベストアンサー

sttyがこの制御を担当しているので、すでに設定されているかもしれません。することで確認できます

$ 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

27  polynomial  2011-10-05


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

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

  1. この信号は、前景プロセスグループに送信される
  2. その時にたまたま設定されていた特殊な文字であれば CTRL+C になります。(最新のシステムではこれがデフォルトですが、歴史的には DEL 文字や他の何かが使われていたかもしれません)

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

いいえ。それらは (標準的な Unix では) SIGHUP, SIGINT, SIGTTOU, SIGTTIN, SIGQUIT, そして SIGTSTP である。行の規律によって生成される他のものはありません

18  JdeBP  2011-10-06


ttyで利用可能なシグナルは、SIGINT (Ctrl+C), SIGTSTP (Ctrl+Z), SIGQUIT (Ctrl+\) です。これらに異なる文字を割り当てることができますが、利用可能なシグナルはこれだけです。あなたの目的のためには、SIGQUIT を送るために Ctrl+\ を使うことができるかもしれませんが、これはエラーのように動作し、デフォルトではコアダンプを起こします。sttyコマンドで確認したり変更したりすることができます

15  Chris Page  2011-10-05


キーバインドは stty -a で編集できますが、プロセスと相互作用する SIGTERMSIGKILL のキーバインドを作成することはできません

それについての詳細を読む こちら

0  Josh Correia  2020-01-24


タイトルとURLをコピーしました