ターミナル内でCtrl+Cのキーボードショートカットを使うと、現在のフォアグラウンドプロセスにSIGINT
の信号が送られることは知っています。現在のプロセスにSIGTERM
やSIGKILL
を送るキーボードショートカットを設定する方法はありますか?そうすれば時間の節約になると思うのですが
私は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点で間違っています
- この信号は、前景プロセスグループに送信される
- その時にたまたま設定されていた特殊な文字であれば 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
で編集できますが、プロセスと相互作用する SIGTERM
や SIGKILL
のキーバインドを作成することはできません
それについての詳細を読む こちら
0 Josh Correia 2020-01-24