Est-il possible de filtrer le haut pour afficher des processus spécifiques?

10

Je suis en haut et je veux toujours voir java / tomcat / redis / mysql / mongo, est-ce possible?

Blankman
la source

Réponses:

16

Vous pourriez à quelque chose comme ça

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

Cela permet pgrepde produire une liste de pid séparés par des virgules qui sont passés àtop -p

Iain
la source
Beaucoup plus simple :)
Mircea Vutcovici
J'avais du mal à trouver comment trouver la liste des processus pour plusieurs noms de processus jusqu'à ce que je voie comment vous l'avez fait.
user9517
1
Une note aux futurs téléspectateurs - cette méthode peut ne pas vous donner les données que vous attendez. a) cette méthode montre les processus en cours d' exécution que lorsque le dessus est commencé . Le comportement normal de Top est de montrer les processus nouveaux depuis le début. b) le manuel supérieur que j'ai lu dit que -p est limité à 20 identifiants de processus. voir: stackoverflow.com/questions/12075591/…
MaasSql
1
Après avoir exécuté top -c, appuyez sur o et écrivez un filtre sur une colonne, par exemple pour afficher les lignes où la colonne COMMAND contient la chaîne foo, écrivez COMMAND = foo
MaasSql
6

Pas tout à fait ce que vous recherchez, mais parfois un processus est exécuté par son propre utilisateur, comme apache2 est souvent exécuté par l'utilisateur www-data.

Vous pouvez l'utiliser pour limiter la sortie de top aux seuls processus de cet utilisateur, en affichant uniquement les processus apache2 en utilisant cette commande:

top -u www-data
DanMan
la source
Génial! Je me demandais comment lister les processus spécifiques aux utilisateurs
razor7
4

Consultez la page de manuel de man top pour plus de détails sur l'utilitaire top ...

Semms vous avez besoin du paramètre -p

-p: surveille les PID comme: -pN1 -pN2 ... ou -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
la source
4

Essaye ça:

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