killコマンド/killallコマンド――実行中のプロセスを終了させる:Linux基本コマンドTips(8)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介してきます。今回は、「kill」コマンドと「killall」コマンドです。
本連載では、Linuxの基本的なコマンドについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、実行中のプロセスを終了させるのに使用する「kill」コマンドと「killall」コマンドです。
目次
killコマンドの概要 | killコマンドの書式 | killコマンドのオプション | killallコマンドの概要 | killallコマンドの書式 | killallコマンドのオプション
実行例
- killコマンドでプロセスIDを指定してプロセスを終了させる
- killallコマンドで名前を指定してプロセスを終了させる
- シグナルとは
- 使用できるシグナルを確認するには
- どうしても終了しないプロセスを“殺す”には
- 時間を指定してプロセスを終了させるには
killコマンドとは?
プロセスを強制終了させることを“プロセスを殺す”と表現することがあります。killはその名の通り、実行中のプロセスを終了させる場合に使うコマンドです。
どのプロセスを終了させるかは、「プロセスID」で指定します。例えば、100番のプロセスならば「kill 100」と指定します。プロセスIDは「ps」コマンドで調べることができます。
killコマンドの主なオプション
killコマンドの主なオプションは次の通りです。
オプション | 意味 |
---|---|
-s シグナル | プロセスに送るシグナル名または番号。-シグナル名、-番号でも指定可能(「シグナルとは」を参照) |
-l | シグナル名のリストを表示する |
killallコマンドとは?
killコマンドと同じく、killallもプロセスを終了させることができるコマンドです。killはプロセスIDでプロセスを指定するのに対し、killallは「プロセスの名前」を指定することができます。この場合、該当する名前のプロセスが“全て殺される”ことになります。
killallコマンドの主なオプション
killallコマンドの主なオプションは次の通りです。
短いオプション | 長いオプション | 意味 |
---|---|---|
-s シグナル | --signal シグナル | プロセスに送るシグナル名または番号。-シグナル名、-番号でも指定可能(「シグナルとは」を参照) |
-l | --list | シグナル名のリストを表示する |
-i | --interactive | シグナルを送る前に確認する |
-v | --verbose | シグナルの送信に成功したらメッセージを表示する |
-q | --quiet | 対象となるプロセスがなかった場合もメッセージを表示しない |
-I | --ignore-case | 名前の大小文字を区別しない |
-r | --regexp | 名前を正規表現で指定する |
-e | --exact | 長い名前でも完全一致しないとシグナルを送らない |
-g | --process-group | 指定したプロセスが所属しているグループにシグナルを送る |
-y 時間 | --younger-than 時間 | 指定時間より新しいプロセスにシグナルを送る |
-o 時間 | --older-than 時刻 | 指定時刻より古いプロセスにシグナルを送る(「時間を指定してプロセスを終了させるには」を参照) |
-u ユーザー | --user ユーザー | 指定したユーザーのプロセスにだけシグナルを送る |
killコマンドでプロセスIDを指定してプロセスを終了させる
「kill プロセスID」で、指定したプロセスを終了させることができます。プロセスIDは「ps」コマンドで確認できます(画面1)。
コマンド実行例
kill プロセスID
(管理者権限で実行する必要があります)

画面1 「ps」コマンドでプロセスIDを確認し、「su」コマンドでスーパーユーザー(root)になり、「kill」コマンドでプロセスを終了させた(「sudo」コマンドを使い「sudo kill プロセスID」を実行してもよい)
killコマンドを使うと、何らかの原因で終了できなくなったプロセスを強制的に終了させることができます。キーボードやマウスからの入力を受け付けなくなった状態でも、“他の端末からログインして終了処理を行う”といったことができます(※)。
【※】“他の端末”を持っていない場合も、[Alt]+ファンクションキー、または[Alt]+[Ctrl]+ファンクションキーで切り替えられる場合があります。
killallコマンドで名前を指定してプロセスを終了させる
「killall 名前」で、“名前”に指定したプロセスを終了させることができます。killコマンドと違い、killallコマンドは一般ユーザーで実行することができます(画面2)。ただし、一般ユーザーで実行した場合は、自分が起動したプロセスのみが対象となります。
コマンド実行例
killall 名前
シグナルとは
killコマンドとkillallコマンドは、プロセスに“シグナル”を送るコマンドです。
例えば、実行中のコマンドがなかなか終了しない場合には、[Ctrl]+[C]キーを押して強制終了させることがあります。実は、[Ctrl]+[C]キーを押すと、「INT」というシグナルがプロセスに送られています。
killコマンドやkillallコマンドが送っているのは「TERM」というシグナルで、「Terminate」つまり「終了しなさいという信号を送っている」という意味になります。
他のシグナルを送りたいときは「kill -HUP プロセスID」のように、オプションでシグナルの略称を指定します。ちなみに「HUP」はもともとハングアップ(回線切断)の信号で、端末を使用するプロセスはこのシグナルを受け取ると終了します。メモリに常駐するタイプのプロセスはHUPシグナルを受け取ると再起動するので、サーバプロセスに対して設定を再読込させたい場合や、再起動させたい場合に使われることがあります(※)。
【※】シグナルに対してどのような動作をするかについては、おおむねの方針が存在しますが、実際にどうなっているかはコマンドによって(開発者によって)異なります。
また、シグナルは数値で指定することもできます。先ほどのHUPであれば「kill -1 プロセスID」のように指定することも可能です。
表記 | 数値 | 意味 |
---|---|---|
HUP | 1 | 制御している端末/プロセスがハングアップした |
INT | 2 | キーボードからの割り込み命令([Ctrl]+[C]キー) |
QUIT | 3 | キーボードからの中止命令([Ctrl]+[\]キー) |
TERM | 15 | プロセスの終了命令(デフォルト) |
KILL | 9 | プロセスの強制終了命令 |
STOP | 19 | プロセスの停止命令([Ctrl]+[Z]キー) |
CONT | 18 | プロセスの再開命令 |
※「SIGHUP」「SIGINT」のように“SIG”を付ける場合もあります。killコマンド、killallコマンドはどちらも使用可能です |
使用できるシグナルを確認するには
killコマンドとkillallコマンドで使用可能なシグナル名は、「-l」オプションで確認できます(画面3)。
コマンド実行例
kill -l
killall -l
どうしても終了しないプロセスを“殺す”には
「kill プロセスID」「killall 名前」で終了できなかったプロセス、つまり、終了命令(TERMシグナル)では終了できなかったようなプロセスでも、他のシグナルでは終わらせることができるかもしれません。
例えば、「HUPシグナル」は、プロセスを実行したユーザーがログアウトしたのと同じような意味合いなので、うまくプロセスを終了できることがあります。
それでも終了しない場合は、問答無用でプロセス終了させる「KILLシグナル」を送ります(画面4)。
コマンド実行例
kill -KILL プロセスID
killall -KILL 名前
時間を指定してプロセスを終了させるには
“起動して1時間以上経過している××というプロセスを終了させたい”、という場合は、「-o」オプション(--older-thanオプション)を使用します(画面5)。逆に、新しいプロセスの場合は「-y」オプション(--younger-thanオプション)を使います。時間の指定方法は「-o」オプションと同じです。
コマンド実行例
killall -o 10m 名前
killall --older-than=10m 名前

画面5 「killall -o 10m cat」で起動して10分以上立つ「cat」コマンドを終了させた(どのプロセスに効いたか分かりやすくするために、「-i」オプションと「-v」オプションを併用しています)
時間は数字と記号を使って示します。例えば、10分であれば「10m」のようにします。
記号 | 時間単位 |
---|---|
s | 秒 |
m | 分 |
h | 時 |
d | 日 |
w | 週 |
M | 月 |
y | 年 |
筆者紹介
西村 めぐみ(にしむら めぐみ)
PC-9801N/PC-386MからのDOSユーザー。1992年より生産管理のパッケージソフトウェアの開発およびサポート業務を担当。のち退社し、専業ライターとして活動を開始。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『はじめてでもわかるSQLとデータ設計』『シェルの基本テクニック』など。2011年より、地方自治体の在宅就業支援事業にてPC基礎およびMicrosoft Office関連の教材作成およびeラーニング指導を担当。
Copyright © ITmedia, Inc. All Rights Reserved.