Linuxコマンドでプロセスを終了させる方法(kill, killall)

Linuxコマンドでプロセスを終了させる方法(kill, killall)

Linuxで実行しているプロセスを終了するときは「kill」コマンドや「killall」コマンドを使うのが一般的です。

そこでここではRedHat互換のLinuxを例に、killコマンドやkillallコマンドの基本的な使い方を紹介します。

killコマンドの書式とシグナル

書式

kill -[シグナル名またはシグナルID] プロセスID
kill -s [シグナル名またはシグナルID] プロセスID
kill -SIG シグナル名 PID

主なシグナル

シグナル名シグナルID説明
HUP1再起動
INT2キーボードからの割り込み(Ctrl+Cキー)
KILL9強制終了
TERM15終了(デフォルト)
  • HUPシグナルは、サービスの設定ファイルを再読込したい場合などに利用します。
  • INTシグナルは、割り込みによって動作を停止します。
  • KILLシグナルは、プロセスを強制終了します。
  • TERMシグナルは、プロセスを適切な手順で終了します。

上に挙げた以外にもいくつかのシグナルがありますが、一般的にはプロセスを通常終了させる「TERM(15)」か、強制終了させる「KILL(9)」を使うことがほとんどです。

killコマンドの使用例

プロセスの終了

killコマンドでプロセスを終了させるときは、まずpsコマンドを使って終了させたいプロセスのIDを調べます。

たとえば、vimコマンドのプロセスを確認したいときは、以下のように実行し、一番左側に表示されているPID列の数字「24358」がプロセスIDとなります。

# ps ax | grep vim
PID    TTY    STAT  TIME COMMAND
24358  pts/2  S+    0:00 /usr/bin/vim sample.txt

終了させたいプロセスのIDが分かったら、以下のようにkillコマンドに続けてプロセスIDを指定することで、該当のプロセスを終了できます。

# kill 23458

プロセスの一括終了

複数のプロセスを一括終了させたいときは、以下のようにプロセスIDをスペース区切りで入力して実行します。

# kill 550 556

プロセスの強制終了

プロセスを強制終了させたいときは、以下のようにシグナル名「KILL」もしくはシグナルID「9」を指定することで、指定したプロセスを強制終了させることができます。

# kill -KILL 23458
# kill -9 23458

killallコマンドの書式とオプション

書式

killall [オプション] プロセス名

オプション

オプション説明
-iシグナルを送る前に確認メッセージを表示する
-lシグナル名の一覧を表示する
-rプロセス名を正規表現で指定する
-e指定した名前が完全一致でないとシグナルを送らない

killallコマンドの使用例

プロセスの終了

killallコマンドでは、プロセスの名前を指定してプロセスを終了させます。なお、プロセス名に指定した文字列を含むすべてのプロセスが終了されます。

# killall vim

プロセスの強制終了

プロセスを強制終了させたいときは、シグナルID「9」を指定することで、指定したプロセスを強制終了させることができます。

# killall -9 vim

なお、killallコマンドで指定できるシグナルは、killコマンドと同様です。