¿Es posible filtrar la parte superior para mostrar procesos específicos?

Respuestas:

16

Podrías hacer algo como esto

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

Esto pgrepproduce una lista separada por comas de pid que se pasan atop -p

Iain
fuente
Mucho más simple :)
Mircea Vutcovici
Estaba luchando por descubrir cómo encontrar la lista de procesos para varios nombres de proceso hasta que vi cómo lo hizo.
user9517
1
Una nota para futuros espectadores: es posible que este método no le brinde los datos que espera. a) este método muestra solo los procesos que se ejecutan cuando se inicia top . El comportamiento normal de Top es mostrar procesos nuevos desde que comenzó. b) el manual superior que leí dice -p está limitado a 20 identificadores de proceso. ver: stackoverflow.com/questions/12075591/…
MaasSql
1
Después de ejecutar top -c, presione o y escriba un filtro en una columna, por ejemplo, para mostrar filas donde la columna COMMAND contiene la cadena foo, escriba COMMAND = foo
MaasSql
6

No es exactamente lo que está buscando, pero a veces un proceso lo ejecuta su propio usuario, como apache2 a menudo lo ejecuta el usuario www-data.

Puede usar eso para limitar la salida de top solo a los procesos realizados por ese usuario, efectivamente solo mostrando procesos apache2 usando este comando:

top -u www-data
DanMan
fuente
¡Excelente! Me preguntaba cómo enumerar los procesos específicos del usuario
razor7
4

Consulte la página del manual de man top para obtener más detalles sobre la utilidad superior ...

Semms necesita el parámetro -p

-p: supervisar los PID como: -pN1 -pN2 ... o -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
fuente
4

Prueba esto:

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