Ist es möglich, oben zu filtern, um bestimmte Prozesse anzuzeigen?

10

Ich bin oben gelaufen und möchte immer Java / Tomcat / Redis / MySQL / Mongo sehen. Ist das möglich?

Blankman
quelle

Antworten:

16

Sie könnten zu so etwas

top -p `pgrep -d ',' "java|tomcat|redis|mysql|mongo"`

Dadurch wird pgrepeine durch Kommas getrennte Liste von PIDs erstellt, an die übergeben wirdtop -p

Iain
quelle
Viel einfacher :)
Mircea Vutcovici
Ich hatte Mühe herauszufinden, wie ich die Prozessliste für mehrere Prozessnamen finden kann, bis ich sah, wie Sie es gemacht haben.
user9517
1
Ein Hinweis für zukünftige Betrachter - Diese Methode liefert Ihnen möglicherweise nicht die Daten, die Sie erwarten. a) Diese Methode zeigt nur Prozesse an, die ausgeführt werden, wenn top gestartet wird . Das normale Verhalten von Top besteht darin, Prozesse zu zeigen, die seit Beginn neu sind. b) Das oberste Handbuch, das ich gelesen habe, besagt, dass -p auf 20 Prozess-IDs begrenzt ist. siehe: stackoverflow.com/questions/12075591/…
MaasSql
1
Nachdem Sie top -c ausgeführt haben, drücken Sie o und schreiben Sie einen Filter in eine Spalte. Um beispielsweise Zeilen anzuzeigen, in denen die COMMAND-Spalte die Zeichenfolge foo enthält, schreiben Sie COMMAND = foo
MaasSql
6

Nicht ganz das, wonach Sie suchen, aber manchmal wird ein Prozess von seinem eigenen Benutzer ausgeführt, wie Apache2 häufig von Benutzer www-data ausgeführt wird.

Sie können dies verwenden, um die Ausgabe von top nur auf die Prozesse dieses Benutzers zu beschränken und mit diesem Befehl effektiv nur Apache2-Prozesse anzuzeigen:

top -u www-data
DanMan
quelle
Toll! Ich habe mich gefragt, wie man benutzerspezifische Prozesse
auflistet
4

Weitere Informationen zum Top-Dienstprogramm finden Sie auf der Man-Top- Handbuchseite.

Semms Sie benötigen -p Parameter

-p: PIDs überwachen als: -pN1 -pN2 ... oder -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.
Sergey
quelle
4

Versuche dies:

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