プロセス監視
プロセスの使っている 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以上の数値なら何でも良いのだけれど、どうやりゃいいんだろう。