連載
» 2016年04月05日 05時00分 UPDATE

Linux基本コマンドTips(8):【 kill 】コマンド/【 killall 】コマンド――実行中のプロセスを終了させる (1/2)

本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介してきます。今回は、「kill」コマンドと「killall」コマンドです。

[西村めぐみ,@IT]
「Linux基本コマンドTips」のインデックス

Linux基本コマンドTips一覧

 本連載では、Linuxの基本的なコマンドについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、実行中のプロセスを終了させるのに使用する「kill」コマンドと「killall」コマンドです。

killコマンドとは?

 プロセスを強制終了させることを“プロセスを殺す”と表現することがあります。killはその名の通り、実行中のプロセスを終了させる場合に使うコマンドです。

 どのプロセスを終了させるかは、「プロセスID」で指定します。例えば、100番のプロセスならば「kill 100」と指定します。プロセスIDはps」コマンドで調べることができます。

killコマンドの書式

kill [オプション] プロセスID

※[ ]は省略可能な引数を示しています



killコマンドの主なオプション

 killコマンドの主なオプションは次の通りです。

オプション 意味
-s シグナル プロセスに送るシグナル名または番号。-シグナル名、-番号でも指定可能(「シグナルとは」を参照)
-l シグナル名のリストを表示する

killallコマンドとは?

 killコマンドと同じく、killallもプロセスを終了させることができるコマンドです。killはプロセスIDでプロセスを指定するのに対し、killallは「プロセスの名前」を指定することができます。この場合、該当する名前のプロセスが“全て殺される”ことになります。

killallコマンドの書式

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 画面1 「ps」コマンドでプロセスIDを確認し、「su」コマンドでスーパーユーザー(root)になり、「kill」コマンドでプロセスを終了させた(「sudo」コマンドを使い「sudo kill プロセスID」を実行してもよい)

 killコマンドを使うと、何らかの原因で終了できなくなったプロセスを強制的に終了させることができます。キーボードやマウスからの入力を受け付けなくなった状態でも、“他の端末からログインして終了処理を行う”といったことができます(※)。

【※】“他の端末”を持っていない場合も、[Alt]+ファンクションキー、または[Alt]+[Ctrl]+ファンクションキーで切り替えられる場合があります。





killallコマンドで名前を指定してプロセスを終了させる

 「killall 名前」で、“名前”に指定したプロセスを終了させることができます。killコマンドと違い、killallコマンドは一般ユーザーで実行することができます(画面2)。ただし、一般ユーザーで実行した場合は、自分が起動したプロセスのみが対象となります。

コマンド実行例

killall 名前


画面2 画面2 「killall cat」で「cat」というプロセスを全て終了させる(前後のpsコマンドは動作確認用)


       1|2 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。