私は複数のプロセスを監視するために '#top -p 22055,21995'を使用しますが、そのほとんどはfwk *、つまりfwk3_dev、fwk5_devで始まります。
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
22055 admin 0 -20 832m 302m 41m S 20 2.5 14973:53 fwk3_dev
21995 admin 0 -20 834m 304m 41m S 14 2.6 10179:55 fwk5_dev
プロセスfwk *の正規表現名を使用して監視する方法 "fwk"で始まるすべてのプロセスを意味しますか?
答え1
top
それ自体はこれを行いませんが、top
バッチモード(-b
オプション)で実行される単純なシェルスクリプトを作成できます。それgrepとループを使用してください。インタラクティブではありません。
例えば
while :; do clear; top -b -n 1 |grep ' fwk' ;sleep 1; done
grep
オプションが与えられると、正規表現は実際に認識されます-E
。ただし、あなたの例は、前にスペースと「fwk」のみを使用して処理できます(同じ名前を持つユーザーがいない限り)。
一部のバージョンtop
-d
バッチモードで一度だけ実行するには、他のオプション(たとえば)が必要な場合があります。
答え2
# first generate a comma-separated list of matching PIDs
pids=$(ps a -o pid,args | awk '/[f]wk/ {print $1}' | xargs | sed -e 's/ /,/g')
# then run top with that list
top -p $pids
注:fwk*
リストの作成と実行の間の短時間でプロセスが開始された場合、top
そのプロセスは表示に含まれません。