Categories: linux

Linuxのプロセス管理に必須!killコマンドの使い方と実践例まとめ

Linuxを使っていると、動作が止まったアプリケーションや意図しないプロセスを終了させたい場面に出くわすことがあります。そんなときに便利なのが「kill」コマンドです。名前だけ見ると少し物騒ですが、このコマンドはプロセスに対して信号(シグナル)を送るためのもので、単に「終了」だけでなく「一時停止」や「再開」なども可能です。本記事では、killコマンドの基本から応用までを、初心者にもわかりやすく丁寧に解説していきます。


killコマンドとは何か?

Linuxにおける「kill」コマンドは、指定したプロセスID(PID)にシグナルを送るためのコマンドです。もっともよく使われる用途は、暴走したプログラムや不要なプロセスを終了させることです。

「kill」という言葉から「強制終了」をイメージしがちですが、実はシグナルを送るための汎用的なコマンドであり、必ずしも終了させるためだけのものではありません。プロセスに送るシグナルにはいくつか種類があり、それぞれ異なる意味を持っています。


プロセスID(PID)の調べ方

killコマンドを使う前に、対象のプロセスID(PID)を知る必要があります。PIDを調べるには、次のようなコマンドが便利です。

ps aux | grep プロセス名

たとえば、Firefoxを終了させたい場合は次のようにします。

ps aux | grep firefox

このコマンドの出力にはプロセス情報が表示され、最初の方にPIDが含まれています。それを覚えておいて、次のkillコマンドに渡すという流れです。

また、pgrepコマンドを使うことで、プロセス名だけでPIDを取得することも可能です。

pgrep firefox

killコマンドの基本的な使い方

もっともよく使われるのが、次の形式です。

kill PID

このコマンドは、デフォルトで「SIGTERM」(シグナル15)をプロセスに送ります。SIGTERMは「プロセスを正常に終了させてください」というソフトな要求です。

例:

kill 1234

上記では、PID 1234のプロセスにSIGTERMを送っています。


シグナルの種類と指定方法

killコマンドでは、さまざまなシグナルを指定できます。主なシグナルとその意味は以下の通りです。

シグナル名番号意味
SIGTERM15通常終了の要求
SIGKILL9強制終了(無視できない)
SIGSTOP19一時停止(中断)
SIGCONT18停止状態からの再開

シグナルを明示的に指定するには、-sオプションまたはシグナル名(または番号)を指定します。

kill -s SIGKILL 1234
# または
kill -9 1234

強制的に終了させたいときには -9 を使うことが多いですが、まずは -15 で試して、うまくいかなかった場合に -9 を使うのが推奨される方法です。


特定のユーザーのプロセスを終了する方法

killコマンドを組み合わせて、特定のユーザーが起動したプロセスをすべて終了することも可能です。

pkill -u ユーザー名

または、killallを使ってプロセス名で一括終了もできます。

killall プロセス名

例:

killall firefox

これにより、すべてのFirefoxプロセスを終了できます。


実行中のジョブに対してkillを使う(bashのジョブ管理)

バックグラウンドで起動したプロセスに対してkillを使いたい場合は、まずジョブ番号を確認します。

jobs

ジョブIDを確認したら、次のようにしてkillできます。

kill %ジョブ番号

例:

kill %1

これは、ジョブ1に対応するプロセスにSIGTERMを送るという意味になります。


killコマンド実行時の注意点

  1. 権限が必要な場合がある
    他のユーザーが起動したプロセスや、システムプロセスを終了しようとすると、root権限が必要です。その場合はsudoを使います。 bashコピーする編集するsudo kill 1234
  2. SIGKILLは最終手段
    強制終了(-9)は確実に止められますが、ファイル破損など副作用のリスクもあるため、どうしても終了できない場合だけにしましょう。
  3. プロセス名の誤りに注意
    killallpkillを使うときは、間違ったプロセス名で重要なプロセスを止めないように注意が必要です。

まとめ

killコマンドは、Linuxでプロセスを管理する上で欠かせないツールです。ただ単に「プロセスを殺す」ためのものではなく、「終了を促す」「一時停止する」「再開する」など、システム運用に柔軟性を与えてくれるコマンドでもあります。

  • PIDの確認には pspgrep
  • ソフトに終了するには kill(デフォルトでSIGTERM)
  • どうしても止まらないときには kill -9
  • 名前で一括終了するには killall
  • ユーザー単位なら pkill -u

これらを状況に応じて使い分けることで、より安定してLinuxシステムを運用できます。初心者の方も、ぜひ実際にコマンドを試しながら感覚をつかんでみてください。

upandup

Web制作の記事を中心に、暮らし、ビジネスに役立つ情報を発信します。 アフィリエイトにも参加しています。よろしくお願いいたします。