はじめに
Linuxプロセスが応答しなくなったり、多くのリソースを消費している場合は、それを強制終了する必要があります。
ほとんどのプロセスには、独自のシャットダウン方法があります。残念ながら、プロセスが誤動作し、シャットダウンできない場合があります。実行中のバックグラウンドプロセスが応答しない場合は、コマンドを使用してプロセスを強制終了する必要があります。
コマンドラインを使用してLinuxプロセスを強制終了する方法の完全なガイドは次のとおりです。
Linuxでどのようなプロセスを殺すことができますか?
プロセスを強制終了または終了する前に、権限を検討する必要があります。
rootユーザーは、すべてのプロセスを強制終了できます。 sudo
を追加することができます ルートとして実行するコマンドの前、または su
でルートシェルを取得する 。次に、コマンドを実行します。
プロセスを強制終了すると、指定されたプロセスに終了メッセージが送信されます。終了メッセージには、次のような複数の種類があります。
-
SIGKILL
– SIGKILLは、プロセスを強制終了する究極の方法です。それは常にプロセスを強制終了し、プロセスを突然強制終了し、致命的なエラーを生成します。 SIGKILLは常に機能するはずです。動作しない場合は、オペレーティングシステムに障害が発生しています。 -
SIGTERM
– SIGTERMはプロセスを強制終了しようとしますが、SIGKILLとは異なり、ブロックされるか、その他の方法で処理される場合があります。これは、プロセスを終了しようとするより穏やかな方法と見なすことができます。
ほとんどの場合、 SIGKILL
プロセスを終了するための最速かつ最も効果的な方法になります。
ステップ1:実行中のLinuxプロセスを表示する
トップ
コマンドは、現在実行されているプロセスの完全な概要を取得するための最も簡単な方法です。
現在実行中のすべてのプロセスのリストを表示するには、次のコマンドを使用します。
top
一番上のコマンドは、各プロセスが使用しているメモリとCPUパワーの量に加えて、プロセスIDとユーザーを表示します。
トップから直接プロセスを強制終了するには インターフェイスで、 kを押します プロセスIDを入力します。
トップを終了するには インターフェイスで、 qを押します 。
ステップ2:強制終了するプロセスを見つける
プロセスを強制終了する前に、プロセスを見つける必要があります。 Linuxでプロセスを検索する方法は複数あります。プロセスは、プロセス名(または部分的なプロセス名)またはプロセスID(「pid」とも呼ばれます)のいずれかで見つけることができます。
psコマンドを使用してプロセスを特定する
ps
コマンドは、 top
と同様の情報を表示します 、ただし、インターフェイスの形式にはなりません。代わりに、 ps
コマンドは、追加したタグに基づいてフォーマットされた、実行中のプロセスの完全なリストを提供します。
ps <options>
これに追加する最も一般的なオプションは「-aux」です:
-
-a
。現在のユーザーだけでなく、すべてのユーザーのプロセスを表示します。 -
-u
。各プロセスに関する詳細情報を提供する -
-x
。ユーザーではなくデーモンによって制御されるプロセスを含めます。
たとえば、コマンド ps -aux
すべてのプロセスの詳細なプロセスリストが返されます。
pgrepまたはpidofでPIDを見つける
Linuxコマンドpgrep
プロセスを見つけるためのより複雑な方法です。このコマンドは、パターンと呼ばれる特定の選択基準に基づいてプロセスを返します。パターンは、 a *
などの正規表現です。 、ここで * ワイルドカードになります。
pgrep <options> <pattern>
このコマンドで使用できるオプションは次のとおりです。
-
-l </ code>
。プロセス名とPIDの両方をリストします。 -
-n
。最新のプロセスを返します。 -
-o
。最も古いプロセスを返します。 -
-u
。特定のユーザーに属するプロセスのみを検索します。 -
-x
。指定されたパターンに完全に一致するプロセスのみを検索してください。
コマンドpgrep -u root
ルートが所有するすべてのプロセスを表示します。コマンドpgrep -u root'a *'
文字「a」で始まるrootが所有するプロセスを返します。
pidof
プロセスの名前がわかっている場合は、コマンドを使用してプロセスのIDを検索します。
pidof <options> <program>
次のようないくつかのオプションを含めることができます:
-
-c
。単一のルートディレクトリ内のPIDのみを返します。 -
-o
。特定のPIDを省略します(フラグの後に省略するプロセスを含めます)。 -
-s
。単一のPIDのみを返します。 -
-x
。スクリプトを実行しているシェルのPIDも返します。
ステップ3:Killコマンドオプションを使用してプロセスを終了する
Linuxでプロセスを強制終了する方法はいくつかありますが、実行中のプロセスの名前、プロセスのpid、またはプロセスの実行時間に応じて異なります。
killallコマンド
killall
コマンドは、名前でプロセスを強制終了するために使用されます。デフォルトでは、SIGTERMシグナルを送信します。 killall
コマンドは、1つのコマンドで複数のプロセスを強制終了できます。
killall <process>
killall
ではいくつかのオプションを使用できます コマンド:
-
-e
。プロセス名と完全に一致するものを見つけてください。 -私コード>
。プロセス名を検索するときは大文字と小文字を区別しないでください。-
-i
。プロセスを強制終了するときに追加の確認を求めます。 -
-u
。特定のユーザーが所有するプロセスのみを強制終了します。 -
-v
。プロセスが正常に強制終了されたかどうかを報告します。
名前に基づいてプロセスを強制終了することに加えて、 killall
次のコマンドを使用して、コマンドを使用してプロセスの経過時間に基づいて強制終了することもできます。
-
-o
。このフラグを期間とともに使用して、その時間より長く実行されているすべてのプロセスを強制終了します。 -
-y
。このフラグを期間とともに使用して、その時間よりも短い時間実行されているすべてのプロセスを強制終了します。
killall -o 15m
コマンドは15分より古いすべてのプロセスを強制終了しますが、 killall -y 15m
コマンドは、15分未満のすべてのプロセスを強制終了します。
pkillコマンド
pkill
コマンドはpgrep
に似ています コマンド。他の修飾要素に加えて、プロセス名に基づいてプロセスを強制終了します。デフォルトでは、 pkill
SIGTERMシグナルを送信します。
pkill <options> <pattern>
pkillオプションは次のとおりです。
-
-n
。発見された最新のプロセスのみを強制終了します。 -
-o
。発見された最も古いプロセスのみを強制終了します。 -
-u
。選択したユーザーが所有するプロセスのみを強制終了します。 -
-x
。パターンに完全に一致するプロセスのみを強制終了します。 -信号
。 SIGTERMではなく、特定のシグナルをプロセスに送信します。
キルコマンド
プロセスIDがわかっている場合は、次のコマンドでプロセスIDを強制終了できます:
kill <processID>
キル
コマンドは、指定されたプロセスIDで一度に1つのプロセスを強制終了します。 SIGTERMを送信します プロセスに停止を示す信号。プログラムがシャットダウンルーチンを実行するのを待ちます。
-信号
コマンドを使用して、SIGTERMではない信号を指定できます。
kill-9Linuxコマンド
kill -9
応答しないサービスをシャットダウンする必要がある場合に便利なコマンドです。通常のkill
と同様に実行します コマンド:
kill -9 <processID>
または
kill -SIGKILL <processID>
kill -9
コマンドはSIGKILLを送信します すぐにシャットダウンするようにサービスに示す信号。応答しないプログラムはkill
を無視します コマンドですが、 kill -9
のたびにシャットダウンします コマンドが発行されます。このコマンドは注意して使用してください。標準のシャットダウンルーチンをバイパスするため、保存されていないデータはすべて失われます。
SIGKILLシグナルがサービスをシャットダウンしない場合、オペレーティングシステムは正しく実行されていません。
トップコマンド
トップ
コマンドは、ユーザーが現在実行中のプロセスをナビゲートできるインターフェースを提供します。
top
特定のプロセスを強制終了するには、 k
を挿入します 上部のインターフェイスから、目的のプロセスIDを入力します。
xkillコマンド
xkill
コマンドは、特定のサーバーのクライアントへの接続を閉じる特殊なタイプのコマンドです。
xkill <resource>
サーバーが多数の不要なプロセスを開いている場合は、 xkill
これらのプロセスを中止します。
xkill
の場合 リソースを指定せずに実行すると、ユーザーが閉じるウィンドウを選択できるインターフェイスが開きます。
Linuxプロセスの終了に関する重要なポイント
- 他の方法でプロセスを閉じることができない場合は、コマンドラインから手動で強制終了できます。
- Linuxでプロセスを強制終了するには、最初にプロセスを見つける必要があります。
top
を使用できます 、ps
、pidof
またはpgrep
コマンド。 - 強制終了するプロセスが見つかったら、
killall
を使用して強制終了できます。 、pkill
、キル
、xkill
またはtop
コマンド。 - プロセスを強制終了するときに、SIGHUP、SIGKILL、またはSIGTERMの終了シグナルを送信できます。
- プロセスを強制終了する権限が必要です。これは、
sudo
を使用して取得できます。 コマンド。