web-dev-qa-db-ja.com

topをフィルタリングして特定のプロセスを表示することは可能ですか?

私はトップを走っていて、常にJava/Tomcat/redis/mysql/mongoを見たいのですが、それは可能ですか?

10
Blankman

あなたはこのようなものにすることができます

top -p `pgrep -d ',' "Java|Tomcat|redis|mysql|mongo"`

これはpgrepを取得して、top -pに渡されるpidのコンマ区切りリストを生成します

16
user9517

あなたが探しているものではありませんが、Apache2がユーザーwww-dataによって実行されることが多いように、プロセスはそれ自身のユーザーによって実行される場合があります。

これを使用して、topの出力をそのユーザーによるプロセスのみに制限し、次のコマンドを使用して、Apache2プロセスのみを効果的に表示できます。

top -u www-data
6
DanMan

トップユーティリティの詳細については、man topマニュアルページを確認してください...

必要なSemms -pパラメータ

-p:PIDを次のように監視します:-pN1 -pN2 ...または-pN1、N2 [、...]

        Monitor only processes with specified process  IDs.   This  option
        can  be given up to 20 times, or you can provide a comma delimited
        list  with  up  to  20  pids.   Co-mingling  both  approaches   is
        permitted.
4
Sergey

これを試して:

alias mytop='echo $(sed "s/\([0-9]*\)/-p \1/g;s/^/top /" <(pgrep -d" " "Java|redis|mysql|mongo"))'
mytop
4