web-dev-qa-db-ja.com

トップで複数のpidを監視する

いくつかのプロセスのメモリ使用量を監視したいので、次のようなコマンドを思いつきました。

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>などのようなものを生成します。

4
lfender6445

のようなものはどうですか

pids=( $(pgrep 'postgres|Unicorn|nginx') )

pIDを配列に入れてから、

top "${pids[@]/#/-p }"

それらをtopに吐き出し、それぞれの前に-pを付けます。

7
steeldriver