Bash でプロセスを強制終了する

この記事では、最初に Linux プロセスに関連するさまざまな概念について説明します。 この後、プロセスを強制終了するさまざまな方法を学びます。
kill
コマンドに飛び込む前に、いくつかの予備的な概念を確認する必要があります。
単純なプロセスと Bash プロセス
オペレーティング システムでアクティブまたは実行中のプログラムは、プロセスと呼ばれます。 たとえば、エディタやブラウザを実行すると、オペレーティング システムはそれぞれのプロセスを作成します。
一方、Bash を介してシステムで実行される単純な実行可能ファイルは、Bash プロセスと呼ばれます。 たとえば、Bash シェルを介した電卓などのアプリケーションを実行するたびに、新しい Bash プロセスが作成されます。
プロセス識別番号 (PID)
実行中のすべてのプロセスに割り当てられる一意の番号または識別子は、PID (プロセス識別子) と呼ばれます。 ps
コマンドは、実行中のすべてのプロセスとその PID を表示します。
-
ps
コマンドは、実行中のすべてのプロセス PID を表示します。 例えば: -
pidof
コマンドは、実行中のプロセスの PID も表示します。 プロセス名を使用して、実行中のプロセスのPID
を見つけることができます。上の図は、
sleep
コマンドがバックグラウンドで実行され、pidof
コマンドを使用してそのプロセスの PID を見つけることを示しています。 -
pgrep
コマンドは、実行中のプロセスのPID
も表示します。pgrep
コマンドを使用して、プロセス名で PID を grep できます。上の図は、
sleep
コマンドがバックグラウンドで実行され、pgrep
コマンドを使用してそのプロセスの PID を見つけることを示しています。
Bash でプロセスを強制終了する
Bash で実行中のプロセスを強制終了するには、多くのオプションがあります。 使用できるオプションの一部を次に示します。
Ctrl+C シグナルを使用する
Ctrl+C キーを使用して、実行中のプロセスを中断または強制終了し、SIGINT
を送信できます。 Ctrl+C は割り込み信号を送信し、実行中のプログラムは強制終了されます。つまり、実行中のプログラムが中断されたと言えます。
上の図は、sleep 100
コマンドが Ctrl+C を使用して中断されていることを示しています。 Ctrl+C を使用して実行中のプログラムを強制終了または中断すると、終了コードは 130
であり、echo $?
を使用して確認できます。 指図。
kill
コマンドを使用する
kill
コマンドを使用して、実行中のプロセスを強制終了できます。 実行中のプロセスを強制終了するには、プロセスの PID が必要です。
以下は、kill
コマンドの構文です。
kill <pid>
kill
コマンドは、任意のプロセスの PID を使用してプロセスを強制終了します。 ps
、pidof
、または pgrep
コマンドを使用して、任意のプロセスの PID を見つけることができます。
上の図は、kill
コマンドを使用して強制終了された PID 14857
のプロセスを示しています。
PID の代わりにプロセス名を使用して任意のプロセスを強制終了することもできます。 pkill
または killall
コマンドは、名前を持つ任意のプロセスを強制終了できます。
以下は、pkill
および killall
コマンドの構文です。
pkill <name>
killall<name>
上記のすべての kill
コマンドは、SIGKILL
を実行中のプロセスに送信します。 コマンドのいずれかが実行中のプロセスをハングアップさせた場合、シグナル番号またはシグナルを指定する必要があります。
上の図は、kill -9
コマンドを使用して強制終了されたプロセスを示しています。 kill -SIGKILL <PID>
または kill -9 <PID
コマンドを使用して、キル シグナル番号またはキル シグナルを送信できます。ここで、9
は SIGKILL
番号です。
pkill
または killall
コマンドで SIGKILL
または 9
を使用することもできます。
上の図は、pkill -9
コマンドを使用して強制終了されたスリープ プロセスを示しています。