我想监视多个进程的内存使用情况,并想出了这样的命令:
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>
内容
答案1
怎么样
pids=( $(pgrep 'postgres|unicorn|nginx') )
将 PID 放入数组中,然后
top "${pids[@]/#/-p }"
将它们吐回到top
,并在每个前面加上-p