Linuxで実行しているプロセスを終了するときは「kill」コマンドや「killall」コマンドを使うのが一般的です。
そこでここではRedHat互換のLinuxを例に、killコマンドやkillallコマンドの基本的な使い方を紹介します。
目次
killコマンドの書式とシグナル
書式
kill -[シグナル名またはシグナルID] プロセスID
kill -s [シグナル名またはシグナルID] プロセスID
kill -SIG シグナル名 PID
主なシグナル
シグナル名 | シグナルID | 説明 |
---|---|---|
HUP | 1 | 再起動 |
INT | 2 | キーボードからの割り込み(Ctrl+Cキー) |
KILL | 9 | 強制終了 |
TERM | 15 | 終了(デフォルト) |
- 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コマンドと同様です。