いくつかのプロセスのメモリ使用量を監視したいので、次のようなコマンドを思いつきました。
ps aux |grep -e postgres -e Unicorn -e nginx|cut -d' ' -f2|for i in $(xargs); do echo $i; done
16112
16113
...
最後のパイプの後のビットを変更して引数をtop -p $i
にフィードするにはどうすればよいですか。そうすれば、すべてのpidのメモリ消費量の全体像を把握できますか?最後のコマンドは、top -p<pid1> -p<pid2>
などのようなものを生成します。
のようなものはどうですか
pids=( $(pgrep 'postgres|Unicorn|nginx') )
pIDを配列に入れてから、
top "${pids[@]/#/-p }"
それらをtop
に吐き出し、それぞれの前に-p
を付けます。