特定のプロセスを監視する

linux には top というコマンドが用意されていますよね。
このコマンドは、基本的にはシステム全体のプロセスの状態を確認できますが、特定のプロセスのみをチェックしたい場合、ちょっと見にくいです。見たくもない(大げさな)プロセスの情報の中から、目的のプロセスを探しださねばなりません。デフォルトだと3秒毎にリストの順番も変わってしまったりするので、例えば3つのプロセスの状態を監視したい場合、結構辛いです。

という事で、 top のオプションを調べてみました。-p オプションでプロセスIDを指定すれば、最大20個迄の特定プロセスのみの監視に使えるようです。

しかし、いちいちプロセスID を調べて top のパラメータに指定して起動する、というのはちょっと面倒です。開発中の常駐系プログラムだと、しょっちゅう起動しなおしますので、プロセスID はコロコロ変わりますから。pgrep や pkill のように指定できれば便利だと思い、pgrep を用いて-p パラメータを生成して top を起動するシェルスクリプトを作ってみました。

(更新: 2015-12-20 pgrep の -l オプションが指定されてても取り敢えず処理できるようにしてみました。-d オプションは使わないでください)

使用する際には、パラメータとして pgrep と同様のオプションを指定します。

使用法の表示等は一切ありませんし、考慮不足な点はあるかと思いますが、取り敢えず使えるかなと思います。

ちなみに、top のソースを入手して、特定のプロセスのみをリストの先頭部分に固定的に表示できるように変更しようとして分からず諦めた、なんて事はありませんよ。絶対にないです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA