すがブロ

sugamasaoのhatenablogだよ

プロセス監視

プロセスの使っている CPU やメモリ情報を集める

こんな感じのスクリプトを作ってみた。

  1 #!/bin/sh
  2 
  3 while true;
  4 do
  5     ps -eo "comm,pid,pcpu,pmem,rss,stat"
  6     sleep 5
  7 done

左から、コマンド名、PID、CPU使用率、メモリ使用率、メモリ物理使用量、ステータスを出力し、5秒間隔で再度出力する。
上記のスクリプトではどのプロセスか? というのは絞り込んでいないので、このシェルを実行する時に grep 等で好きなプロセスを監視すると良いと思う。
以下は出力例

sugamasao% ./ps_waitch.sh
COMM PID %CPU %MEM RSS STAT
/sbin/launchd 1 0.0 0.0 572 Ss
/usr/libexec/kex 10 0.0 0.1 1224 Ss
/usr/sbin/Direct 11 0.0 0.2 3344 Ss
(略)

ちなみに

本当は引数でスリープ秒を指定できるようにしたかったんだけど、引数が数値かどうか? という判定を行うのがちょっと見当たらなかったのでパス。0以上の数値なら何でも良いのだけれど、どうやりゃいいんだろう。