11

アプリケーションを (Linux 上で) 開発していますが、残念ながらハングすることがあります。使用Ctrl+Cして sigint を送信できますが、プログラムが sigint を無視しています。だから私はプロセスを殺すダンスをしなければなりません:

Ctrl+Z
$ ps aux | grep process_name
$ kill -9 pid

-say - を押したときに現在のプロセスに kill シグナルを送信するように bash を設定する方法はありますCtrl+Shift+Cか?

4

3 に答える 3

9

SIGKILL を送信するために使用できるキーはないと思います。

代わりにSIGQUITが行いますか?それをキャッチしていない場合、デフォルトではプロセスをコアダンプします。デフォルトでは、これは ^\ です。これは、次を実行して確認できます。

$ stty -a

端末で。それは言うべきです:

quit = ^\
于 2008-12-04T08:42:26.907 に答える
7

^ \を押すと、SIGQUITシグナルを現在のフォアグラウンドプロセスに送信できます(デフォルトでは、を実行stty -aしての現在の値を確認できquitます)。

を実行して、シェルから最後のバックグラウンドプロセスを強制終了することもできます

$ kill %%
于 2008-12-04T08:49:32.010 に答える
2

SIGKILL にバインドされたキーがないことを考えると、SIGQUIT がそれをカットしない場合は、入力を節約するためにエイリアスを作成することができます。まず、

Ctrl+Z
$ ps aux | grep process_name
$ kill -9 pid

ダンスは次のように要約できます (殺したいプロセスのインスタンスが 1 つしかない場合) 。

Ctrl+Z
$ pkill -9 process_name

ユースケースが常にサスペンドしてからkillする場合は、エイリアスを作成して、最後に実行されたプロセスをkillすることができます

$alias pks="pkill -9 !!:0"

~/.bash_profile にそのエイリアスを追加します。

于 2008-12-04T08:35:32.227 に答える