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 python
sudo pkill
を使えばroot権限で全プロセスを終了できますが、誤操作でシステムが不安定になるリスクもあります。pkill
コマンドは、Linuxでのプロセス管理において非常に強力で便利なツールです。
特にプロセス名やパターンで柔軟に指定できる点、ユーザーやコマンドラインの条件で対象を絞り込める点が魅力です。
システム管理やデバッグ作業、自動化スクリプトなど、あらゆるシーンで活躍します。
ただし誤って重要なプロセスを終了させるとトラブルの原因になるため、pgrep
などで事前確認を行いながら、安全に運用していくことが大切です。
Linuxにおける日常的な運用管理スキルの一つとして、pkill
の活用方法をぜひ身につけてみてください。