'xkill'コマンドを使用してLinuxプロセス/応答しないアプリケーションを強制終了する方法


Linuxでリソース/プロセスを強制終了するにはどうすればよいですか?明らかに、リソースのPIDを見つけて、そのPIDをkillコマンドに渡します。

より正確に言えば、リソース(ターミナルなど)のPIDは次のように見つけることができます。

$ ps -A | grep -i terminal

6228 ?        00:00:00 gnome-terminal

上記の出力では、番号「6228」はプロセスのPID(gnome-terminal)です。次に示すように、killコマンドを使用してプロセスを強制終了します。

$ kill 6228

killコマンドは、プロセスにシグナルを送信します。プロセスのPIDはコマンドとともに渡されます。

または、プロセスの名前やその他の属性に基づいてプロセスを強制終了するpkillコマンドを使用することもできます。名前がターミナルであるプロセスを強制終了するには、次のコマンドを実行する必要があります。

$ pkill terminal

注:pkillでのプロセス名の長さは15文字に制限されています。

pkillは、PIDを見つけなくてもプロセスを強制終了できるため、より便利なようです。ただし、システムをより適切に制御したい場合は、「kill」コマンドに勝るものはありません。 killを使用すると、どのプロセスを強制終了しているかをより正確に把握できます。

kill、pkill、killallコマンドの詳細なガイドについてはすでに説明しました。

Xサーバーを実行している人のために、プロセス名やPIDを渡さずにXウィンドウからプロセスを強制終了できるxkillと呼ばれる別のツールがあります。

xkillユーティリティは、Xサーバーにクライアントとの通信を強制的に閉じさせ、その結果、Xリソースによってクライアントが強制終了されます。 X11ユーティリティの一部であるxkillは、不要なウィンドウを強制終了するのに非常に便利です。

複数のXサーバーがホスト上で同時に実行されているときに表示番号を使用して特定のXサーバーに接続する(-display displayname)などのオプションをサポートし、画面上のトップレベルウィンドウですべてのクライアント(-all、非推奨)を強制終了します。フレーム(-frame)を考慮に入れてください。

実行できるすべてのクライアントのリストを取得するには、次のようにします。

$ xlsclients
'  ' /usr/lib/libreoffice/program/soffice
deb  gnome-shell
deb  Docky
deb  google-chrome-stable
deb  soffice
deb  gnome-settings-daemon
deb  gnome-terminal-server

idでリソース識別子が渡されない場合、xkillはマウスポインタを「X」と同様の特別なシンボルに変換します。強制終了するウィンドウをクリックするだけで、サーバーとの通信が強制終了されるか、プログラムが強制終了されます。

$ xkill

xkillは、通信を閉じることで通信が正常に強制終了/中止されることを保証しないことに注意することが重要です。サーバーへの通信が閉じられると、ほとんどのアプリケーションが強制終了されます。ただし、まだいくつか実行されている可能性があります。

ここで言及する必要があるポイント:

  1. This tool works only when X11 server is running, as xkill is a part of X11 utility.
  2. Don’t confuse with Closing and killing a resource. While killing a resource you may expect it not to exit cleanly.
  3. This is not a replacement of kill utility.

いいえ、Linuxコマンドラインからxkillを起動する必要はありません。同じキーの組み合わせをパンチするだけで、キーボードショートカットを設定してxkillを呼び出すことができます。

一般的なgnome3デスクトップ環境でキーボードショートカットを設定する方法は次のとおりです。

[設定] –> [キーボードの選択]に移動し、[+]をクリックして、名前とコマンドを追加します。新しいエントリをクリックして、ショートカットキーの組み合わせとして使用するキーを押します。 Ctrl + Alt + Shift + xを実行しました。

次にXリソースを強制終了するときは、キーの組み合わせ(Ctrl + Alt + Shift + x)を呼び出すだけで、マウスポインターがxに変更されます。殺したいxリソースをクリックすると、すべて完了です。