pkillコマンドは、コマンドラインからプロセスにシグナルを送信するためのユーティリティです。killコマンドやkillallコマンドと同様の目的で使用されますが、より柔軟なプロセス指定が可能です。
pkillの主な特徴
正規表現によるマッチング: プロセス名の一部やパターンに一致するプロセスを特定できます。これにより、特定のプロセス群をまとめて操作する際に便利です。
様々なマッチング条件: プロセス名だけでなく、ユーザーID、グループID、親プロセスIDなど、様々な条件でプロセスを絞り込むことができます。
柔軟なシグナル送信: 特定のシグナルを送信することが可能です。これにより、プロセスの終了だけでなく、一時停止や再開などの制御も行えます。
基本的な使い方
bash
pkill [オプション] [シグナル] プロセス名
プロセス名: シグナルを送りたいプロセスの名前を指定します。
正規表現を使用することも可能です。
シグナル: 送信するシグナルを指定します。省略した場合は、デフォルトのSIGTERMシグナルが送信されます。SIGKILLなどの強制終了シグナルも指定できます。
オプション: プロセスの絞り込みや動作を変更するためのオプションを指定します。
オプション例
`-n` : 最も新しく生成されたプロセスにのみシグナルを送ります。
`-u <ユーザー>` : 指定したユーザーが所有するプロセスにのみシグナルを送ります。
`-g <グループ>` : 指定したグループが所有するプロセスにのみシグナルを送ります。
`-f` : プロセス名だけでなく、コマンドライン全体を
正規表現のマッチング対象にします。
使用例
例1: acroreadプロセスの強制終了
最後に生成されたacroreadプロセスを終了させたい場合は、以下のコマンドを使用します。
bash
pkill -n acroread
これにより、最も新しいacroreadプロセスにSIGTERMシグナルが送信され、プロセスが終了します。
例2: acroreadプロセスへのUSR1シグナルの送信
acroreadプロセスにUSR1シグナルを送信したい場合は、以下のコマンドを使用します。
bash
pkill -USR1 acroread
これにより、acroreadプロセスにUSR1シグナルが送信され、プロセスがこのシグナルに対応した処理を実行します。
注意点
pkillコマンドは強力なコマンドであるため、使用には注意が必要です。誤ったプロセスを終了させないように、プロセス名やオプションを十分に確認してください。
正規表現を使用する場合は、意図しないプロセスに影響を与えないように、
正規表現を正しく記述する必要があります。
* シグナルの種類によってプロセスの挙動は異なるため、適切なシグナルを選択することが重要です。
まとめ
pkillコマンドは、
正規表現や様々な条件でプロセスを指定できるため、killコマンドよりも柔軟にプロセスを制御できます。プロセスの管理や自動化スクリプトにおいて、非常に便利なツールです。ただし、誤った使い方をするとシステムに影響を与える可能性があるため、使用する際には注意が必要です。より詳しい情報については、マニュアルページを参照してください。
参照:
pgrep, pkill (JM Project)