Linuxでフリーズしたプログラムを強制終了する5つの方法|killコマンドからxkillまで徹底解説
堅牢なオペレーティングシステムであるLinuxでも、アプリやプログラムがフリーズしてしまうことはあります。
幸い、Linuxにはフリーズしたプログラムを終了(キル)する方法が複数用意されています。この記事では、状況に応じて使える代表的な対処法をわかりやすく解説します。
killコマンドを使う
killコマンドを使用する前に、応答しなくなったプログラムのプロセスID(PID)を把握しておく必要があります。
PIDとは、Linux OS上でプロセスが作成される際に自動的に割り当てられる識別番号のことです。この方法の大きな利点は、すべてのLinuxシステムで共通して使える点にあります。
プロセスとPIDを特定する
どのプロセスがフリーズしているのかわからない場合は、「top」と「ps」という2つのコマンドが役立ちます。
topはコマンドラインベースのシステムモニターです。端末から以下を入力してみましょう。
$ top
上のスクリーンショットには多数の情報が表示されています。ここでは例として、Chromeがフリーズしたプログラムだと仮定します。
Chromeには4つのインスタンスが実行されており、それぞれ以下のPIDを持っています。
- 3827
- 3919
- 10764
- 11679
終了させたいChromeのインスタンスを正確に特定するには、psコマンドとgrepを組み合わせて出力を絞り込みます。
以下のコマンドで、Chromeに関連する実行中のプロセスを一覧表示できます。
ps aux | grep chrome
プロセスを終了する
これで、フリーズしたプロセスを終了するために必要な2つの情報(プロセス名とID)が揃いました。使用するのは以下のコマンドです。
- kill … PIDを指定してプロセスを終了する
- killall … プロセス名を指定してプロセスを終了する
どちらのコマンドも、目的に応じてさまざまなシグナルを送信できます。
たとえば、応答しないプロセスを一度終了させてから再起動したい場合は、HUP(ハングアップ)シグナルを使用します。
その他の主なkillシグナルには以下のようなものがあります。
- SIGSTOP:プロセスを一時停止する
- SIGINT:キーボードからの割り込み(Ctrl+C相当)を送る
- SIGKILL:プロセスを強制終了する
先ほどのpsコマンドの結果から、Chromeの各インスタンスのPIDは3827、3919、10764、11679であることがわかっています。
killシグナルを送信するには、以下のコマンドを順に実行して、4つのインスタンスすべてを確実に終了させましょう。
- kill -9 3827
- kill -9 3919
- kill -9 10764
- kill -9 11679
また、killallを使えば、次の1行のコマンドだけで同じシグナルを送信することも可能です。
killall -9 chrome
Xボタンをクリックする
応答しなくなったプログラムやアプリでは、ボタンやメニューがグレーアウトして操作できなくなるのが典型的な症状です。場合によっては、ウィンドウ自体を画面上で移動することさえできなくなります。
最も手軽な解決策は、ウィンドウ上部の隅にあるXボタンをクリックすることです。デスクトップ環境によって、ボタンの位置は左上の場合も右上の場合もあります。
Xをクリックすると、「待機(Wait)」と「強制終了(Force Quit)」の2つの選択肢を含むダイアログが表示されます。プログラムを終了させたい場合は「強制終了」を選びましょう。
システムモニターでプロセスを終了する
Ubuntuの標準システムモニターはGNOME製です。Ubuntu Linux上で実行中のすべてのプロセスの状態を視覚的に確認できます。
ユーザーはGUI(グラフィカルユーザーインターフェース)を通じて、停止(Stop)、続行(Continue)、強制終了(Kill)といった操作を直感的に行えます。
お使いのシステムにGNOMEシステムモニターが含まれていない場合は、以下の手順でインストールしてください。この手順は、サポート中のすべてのUbuntu Linuxのバージョンに加えて、Linux MintやDebianでも利用できます。
- キーボードショートカットCtrl+Alt+Tで端末を開き、以下のコマンドでGNOMEシステムモニターをダウンロード&インストールします。
sudo apt-get install gnome-system-monitor
- 続いて、端末から以下のコマンドでシステムモニターを起動します。
gnome-system-monitor
- または、GUIから「アプリケーション」を開き、検索ボックスに「system monitor」と入力して、アイコンをクリックしても起動できます。
- システムモニターを開いたら、「プロセス(Processes)」タブを参照して、応答しない、またはフリーズしたプログラムを見つけ、選択して右クリックします。
右クリックすると、以下のようなオプションが表示されます。
- プロセスの終了(End Process):一時ファイルなどをクリーンアップしながらアプリケーションを終了します。
- プロセスの一時停止(Stop Process):プロセスを一時停止し、後で再開できるようにします。
- プロセスを強制終了(Kill Process):最も強力なオプションです。「終了」でも止まらないフリーズしたプログラムを強制的に終了させます。
xkillコマンドを使う
xkillは、応答しないLinuxプロセスを強制終了できる、Ubuntuにプリインストールされた便利なユーティリティです。
他のディストリビューションでも、端末から以下のコマンドでインストールできます。
sudo apt install xorg-xkill
インストール後、xkillと入力して実行しましょう。マウスカーソルがドクロや「×」の形に変わり、フリーズしたプログラムのウィンドウを左クリックするだけで閉じられます。
pgrepとpkillを使う
多くのLinuxシステムでは、前述のkillやpsと同じ作業をより手軽に行えるショートカットとして、pkillとpgrepが用意されています。
pgrepはプロセス名とIDを表示します。たとえばpgrep chromeを実行すれば、実行中のChromeプロセスのIDを確認でき、そのIDをkillコマンドに渡して終了できます。
pkill 7012
あるいは、IDを調べる手順を省略して、以下のコマンドでChromeの全インスタンスを一括終了することも可能です。
pkill chrome
この方法は、アプリケーションのインスタンスが1つだけ動いている場合に特に有効です。ただし、同じプログラムの複数のウィンドウが開いていて、そのうち1つだけを終了したい場合は、代わりにxkillを使うのがおすすめです。
まとめ:再起動せずにスマートに対処しよう
プログラムがハングしたとき、システム全体の再起動が常に最善の選択肢とは限りません。特に、複数のプロジェクトを同時に進めていて、まだ作業を保存していない場合は、データ消失のリスクも伴います。
そんなときは、本記事で紹介したいずれかの方法を活用すれば、Linux上でフリーズしたり応答しなくなったプログラムを、安全かつ素早く終了させることができます。状況に応じて最適な手段を選び、快適なLinuxライフを送りましょう。
-
Linuxで応答しないアプリを強制終了する方法まとめ【GUI・コマンド両対応】
Linuxは堅牢なオペレーティングシステムとして知られており、アプリケーションのフリーズや動作の遅延といったトラブルは比較的少ないです。それでも、まれにアプリケーションが応答しなくなることがあります。そんなときは、復旧を待つだけでなく、フリーズしたアプリを強制終了して問題を解決できます。本記事では、応答しないアプリケーションを終了させるための実用的な方法をいくつか紹介します。状況に応じて最適な方法を選べるよう、GUI操作からコマンドラインまで幅広く解説していきます。注意: 本記事ではKali Linuxを使用していますが、紹介する方法は他の多くのLinuxディストリビューションでも同様に利用可
-
タスクマネージャーを使わずに応答しないプログラムを強制終了する4つの方法【Windows 10対応】
「Ctrl + Alt + Delete」のキー組み合わせとその役割は、多くの方がご存じでしょう。パソコンを使っていると、応答しなくなったプログラムを強制的に終了させなければならない場面に誰もが遭遇します。しかし、タスクマネージャー自体もフリーズして動かなくなったら、どうすればよいのでしょうか。この記事では、そうした状況から抜け出すための複数の解決策をご紹介します。 まず、Windows 10で応答しないプログラムを終了させる最も一般的な方法であるタスクマネージャーの使い方をおさらいしましょう。画面がフリーズし、開いたままのタブを閉じられないときは、ショートカットキー「Ctrl + Shift