Linuxを使っていると、特定のプロセスを終了させたい場面がよくあります。
そのときに便利なのが、pkill コマンドです。kill コマンドと似ていますが、pkill はプロセスID(PID)を指定する必要がなく、プロセス名やパターンマッチで対象を簡単に終了できます。
本記事では、pkill の基本的な使い方から応用例、注意点までをわかりやすく解説します。Linuxのターミナル操作に慣れていない方でも理解しやすいよう、具体的なコマンド例を交えて紹介しますので、ぜひ最後までご覧ください。
pkill は、「process kill」の略で、指定した条件に一致するプロセスを終了させるコマンドです。
従来の kill コマンドでは、対象のプロセスID(PID)を調べてから指定する必要がありますが、pkill ではプロセス名などの条件を使って直接終了できるため、効率的な運用が可能になります。
pkill [オプション] パターン
パターン:対象のプロセス名や正規表現などオプション:マッチ方法や対象ユーザーなどを指定する最も基本的な使い方は、プロセス名をそのまま指定する方法です。
pkill firefox
このコマンドは、現在実行中の firefox という名前のプロセスすべてを終了させます。
該当するプロセスが複数あっても、一度にまとめて終了できます。
pkill はパターンマッチ(正規表現)にも対応しています。
pkill '^g.*e$'
このように指定すれば、名前が g で始まり e で終わるプロセス名を終了させます。
例えば google-chrome などが該当する可能性があります。
pkill はさまざまなオプションがあり、柔軟な指定が可能です。
特定のユーザーが起動しているプロセスだけに限定して終了させたい場合に使います。
pkill -u bob python
このコマンドは、ユーザー bob が実行中の python プロセスを終了します。
通常はプロセス名だけでマッチしますが、-f をつけることでコマンドライン全体に対してマッチが可能になります。
pkill -f "python my_script.py"
たとえばスクリプト名で特定したいときに便利です。
pkill -n nginx
このコマンドは、nginx の中でもっとも新しく起動したプロセスを終了します。
pkill -o nginx
上記は最も古い nginx プロセスを対象にします。プロセスの世代管理などに活用できます。
ここで、pkill と kill の違いを整理しておきましょう。
| 項目 | kill | pkill |
|---|---|---|
| 指定方法 | プロセスID(PID)を指定 | プロセス名やパターンで指定 |
| 柔軟性 | PIDを知っている必要あり | ユーザーや正規表現で柔軟に選択可能 |
| 例 | kill 1234 | pkill nginx |
kill は対象が明確なときに有効ですが、pkill のほうが手間がかからず、特にスクリプトや運用で重宝します。
pkill -f my_script.py
複数起動しているPythonスクリプトのうち、ファイル名に my_script.py を含むものを終了できます。
pkill -u alice
ユーザー alice のすべてのプロセスを強制終了します。運用上は注意が必要なコマンドですが、ログアウト処理の一環として使われることもあります。
pkill nginx
systemctl start nginx
一度 nginx を pkill で終了し、再起動することで、設定変更を反映させたい場合などに使われます。
pkill はとても便利なコマンドですが、使い方を誤ると必要なプロセスまで終了させてしまう恐れがあります。以下の点に注意しましょう。
pgrep を使う:pgrep を使いましょう。 bashコピーする編集するpgrep -fl pythonsudo pkill を使えばroot権限で全プロセスを終了できますが、誤操作でシステムが不安定になるリスクもあります。pkill コマンドは、Linuxでのプロセス管理において非常に強力で便利なツールです。
特にプロセス名やパターンで柔軟に指定できる点、ユーザーやコマンドラインの条件で対象を絞り込める点が魅力です。
システム管理やデバッグ作業、自動化スクリプトなど、あらゆるシーンで活躍します。
ただし誤って重要なプロセスを終了させるとトラブルの原因になるため、pgrep などで事前確認を行いながら、安全に運用していくことが大切です。
Linuxにおける日常的な運用管理スキルの一つとして、pkill の活用方法をぜひ身につけてみてください。