Linuxを使用してプロセスを強制終了する方法

ほとんどの場合、プログラムは独自の手段で終了するか、グラフィカルアプリケーションの場合は、適切なメニューオプションを使用するか、コーナーの十字を使用してプログラムを終了したいと思うでしょう。

たいていはプログラムがハングします。この場合、プログラムを強制終了する方法が必要になります。 バックグラウンドで実行しているプログラムを強制終了して、実行する必要がなくなった場合もあります。

このガイドは、システム上で実行されている同じアプリケーションのすべてのバージョンを強制終了する方法を提供します。

killallコマンドの使用方法

killallコマンドは、すべてのプロセスを名前で強制終了します。 つまり、killallコマンドを実行している同じプログラムの3つのバージョンを使用している場合は、3つすべてを強制終了します。

たとえば、画像ビューアなどの小さなプログラムを開きます。 同じ画像ビューアの別のコピーを開きます。 私の例では、私はGnomeEyeのクローンであるXviewerを選択しました。

ターミナルを開き、次のコマンドを入力します。

キルオール

たとえば、Xviewerのすべてのインスタンスを強制終了するには、次のように入力します。

killall xviewer

殺すために選択したプログラムの両方のインスタンスが閉じます。

正確なプロセスを終了する

killallは奇妙な結果を生むかもしれません。 ここに理由の一つがあります。 コマンド名の長さが15文字を超える場合、killallコマンドは最初の15文字でのみ動作します。 したがって、同じ最初の15文字を共有する2つのプログラムがある場合、両方のプログラムは、1つを殺すだけであってもキャンセルされます。

これを回避するには、正確な名前に一致するファイルのみを殺す次のスイッチを指定します。

killall -e

プログラムを強制終了する際に大文字小文字を無視する

killallコマンドが指定したプログラム名の大文字小文字を無視するようにするには、次のコマンドを使用します。

killall -I
killall - ignore-case

同じグループのすべてのプログラムを強制終了する

次のようなコマンドを実行すると、2つのプロセスが作成されます。

ps -ef | もっと少なく

1つのコマンドは、システム上のすべての実行中のプロセスをリストするps -efの部分です。出力はlessコマンドにパイプされます。

どちらのプログラムもbashと同じグループに属しています。

一度に両方のプログラムを強制終了するには、次のコマンドを実行します。

killall -g

たとえば、bashシェルで実行されているすべてのコマンドを強制終了するには、次のように実行します。

killall -g bash

ちなみに、実行中のグループをすべて一覧表示するには、次のコマンドを実行します。

ps -g

プログラムを強制終了する前に確認を得る

明らかに、killallコマンドは非常に強力なコマンドであり、間違ったプロセスを誤って削除することは望ましくありません。

次のスイッチを使用すると、各プロセスが終了する前に確実かどうか尋ねられます。

killall -i

一定の時間稼働していたプロセスを強制終了する

プログラムを実行していて、望む時間よりもはるかに長い時間がかかるとします。

コマンドを次のようにkillすることができます。

killall -o h4

上記のコマンドのhは時間を表します。

次のいずれかを指定することもできます。

また、起動したばかりのコマンドを強制終了する場合は、次のスイッチを使用できます。

killall -y h4

今回killallコマンドは、4時間未満実行しているすべてのプログラムを強制終了します。

プロセスが殺されないときに私に教えないでください

デフォルトでは、実行していないプログラムを実行しようとすると、次のエラーが表示されます。

programname:プロセスが見つかりません

プロセスが見つからなかったかどうかを知らせたくない場合は、次のコマンドを使用します。

killall -q

正規表現の使用

プログラムまたはコマンドの名前を指定する代わりに、正規表現に一致するすべてのプロセスがkillallコマンドによって閉じられるように、正規表現を指定することができます。

正規表現を使用するには、次のコマンドを使用します。

killall -r

ユーザーを指定するためにプログラムを強制終了する

特定のユーザーによって実行されているプログラムを強制終了する場合は、次のコマンドを指定できます。

killall -u

特定のユーザーのすべてのプロセスを強制終了したい場合は、プログラム名を省略することができます。

killallを待つ

デフォルトでは、killallは実行時に端末にまっすぐ戻ってきますが、ターミナルウィンドウに戻る前にkillallを強制的に強制して、指定されたプロセスがすべて終了するまで待たせることができます。

これを行うには、次のコマンドを実行します。

killall -w

プログラムが決して死ぬことがなければ、killallもまた生き続けるでしょう。

信号信号の信号

デフォルトでは、killallコマンドはSIGTERMシグナルをプログラムに送り、プログラムを終了させます。これは、プログラムを強制終了する最もクリーンな方法です。

しかし、killallコマンドを使って送ることができる他のシグナルがあり、以下のコマンドを使ってそれらをリストすることができます:

killall -l

返されるリストは次のようになります。

そのリストは非常に長いです。 これらの信号の意味については、次のコマンドを実行してください。

男7信号

一般的には、デフォルトのSIGTERMオプションを使用するべきですが、プログラムが死ぬことを拒否した場合は、SIGKILLを使用することができます。

プログラムを殺す他の方法

リンクされたガイドで強調されているように、Linuxアプリケーションを殺す5つの方法があります

しかしここでリンクをクリックする作業を省くために、これらのコマンドが何であるかを示すセクションがあります。

最初のコマンドはkillコマンドです。 あなたが見てきたkillallコマンドは、同じプログラムのすべてのバージョンを強制終了するのに最適です。 killコマンドは、一度に1つのプロセスを終了するように設計されているため、より多くのターゲットが設定されています。

killコマンドを実行するには、killするプロセスのプロセスIDを知る必要があります。 このためにpsコマンドを使用することができます。

たとえば、実行中のバージョンのFirefoxを見つけるには、次のコマンドを実行します。

ps -ef | grep firefox

最後に/ usr / lib / firefox / firefoxコマンドでデータ行が表示されます。 行の冒頭に、ユーザーIDとそのプロセスIDの後の番号が表示されます。

プロセスIDを使用して、次のコマンドを実行してFirefoxを終了させることができます:

kill -9

プログラムを強制終了する別の方法は、xkillコマンドを使用することです。 これは一般的に、不正なグラフィカルアプリケーションを削除するために使用されます。

Firefoxなどのプログラムを強制終了するには、端末を開いて次のコマンドを実行します。

xkill

カーソルが大きな白い十字に変わります。 殺すウィンドウの上にカーソルを置き、マウスの左ボタンをクリックします。 プログラムはすぐに終了します。

プロセスを強制終了する別の方法は、Linuxのtopコマンドを使用することです。 topコマンドは、システム上で実行中のプロセスをすべて一覧表示します。

プロセスを終了するために必要なのは、「k」キーを押して、殺すアプリケーションのプロセスIDを入力することだけです。

この節の前半では、killコマンドを使用して、psコマンドを使用してプロセスを見つけ、killコマンドを使用してプロセスを終了する必要がありました。

これは決して最も単純な選択肢ではありません。

psコマンドは、あなたが必要としない情報を返します。 あなたが望んだのはプロセスIDだけでした。 次のコマンドを実行すると、より簡単にプロセスIDを取得できます。

pgrep firefox

上記のコマンドの結果は単にFirefoxのプロセスIDです。 次のようにしてkillコマンドを実行できるようになりました。

殺す

をpgrepによって返された実際のプロセスIDに置き換えます)。

しかし、単にpkillに次のようにプログラム名を指定する方が簡単です。

pkill firefox

最後に、「システムモニタ」と呼ばれるUbuntuに付属のグラフィカルツールを使用することができます。 「システムモニタ」を実行するには、スーパーキー(ほとんどのコンピュータではWindowsキー)を押し、検索バーに「sysmon」と入力します。 システムモニターアイコンが表示されたら、それをクリックします。

システムモニタにはプロセスの一覧が表示されます。 プログラムをクリーンな方法で終了するには、プログラムを選択し、画面の最後にある終了キーを押します(またはCTRLとEを押します)。 これがうまくいかない場合は、右クリックして「Kill​​」を選択するか、殺すプロセスでCTRLとKを押してください。