¿Hay opciones relativamente sencillas con la parte superior para rastrear un proceso específico?
¿Idealmente identificando el proceso por un valor legible para el ser humano? por ejemplo chromeo java.
En otras palabras, quiero ver toda la información típica que proporciona Top, pero para que los resultados se filtren a los parámetros proporcionados, es decir. 'cromo' o 'java'

top | grep chrome?ps -x | chromepara obtener pid (deja que se muestre pid2034) y luegotop | grep 2034top | grep chromefuncionó perfectamente, ¡gracias!ps -x | process_nameobtener el PID, cuando ejecutaba el proceso nuevamente, el PID era diferente y, por lo tanto, el El PID original no lo identificaría.Respuestas:
Simplemente puede usar
grep:Ejecute el siguiente comando para obtener la salida que desea (ex-chrome):
Aquí estamos utilizando
grepcon tuberías|de modotopygrepde aplicación en paralelo;topsalida dada agrep(como entrada) ygrep chromefiltra las líneas coincidenteschromehasta que setopdetiene.fuente
topsolo trata la pregunta y OP desea filtrar el proceso en funcióntop.sleep 10 & top | grep sleepDe mi otra respuesta aquí , podrías hacer algo como,
fuente
top -p `pgrep "java"`me da el siguiente error en un shell bashtop: -p requires argument. top -ppgrep -d ',' "apache2"funcionó para mí, pero realmente no entendí lo que estaba haciendo el comando: ¿es una forma de alimentar múltiples argumentos para arriba?pidlista de comas separadas para trabajar.Explicación:
top -p pid1,pid2: muestra información de proceso múltiple, el pid debe estar separado por,pgrep -d "," java: imprime los pids de todos los programas de Java, los pids están separados por una nueva línea de forma predeterminada. use-d ","para separarlo según,lo requiera la parte superior.Si ve un error como
top: -p argument missing, significa que no se está ejecutando ningún programa Java, es decir, el pgrep no tiene salida.fuente
top -ppgrep "java" ``. gracias.pgrepel código de salida:pids="$(pgrep -d, java)" && top -p "$pids"En OpenBSD
top, simplemente presione ge ingrese el nombre del comando que desea filtrar.En,
toppor ejemplo, Ubuntu, presione oe ingrese, por ejemplo,COMMAND=chromepara mostrar solo las entradas de laCOMMANDcolumna que sean iguales achrome.En Linux que usa la misma
topimplementación que Ubuntu, lea la sección FILTRADO en una ventana deltopmanual.fuente
Se han proporcionado otras buenas respuestas, pero hice un script hace algún tiempo, al que llamé ptop, que me sirve bien:
Esto admite que se especifiquen varios nombres de proceso (como
ptop bash chrome) y proporciona un mensaje de error más agradable en caso de que no haya procesos con ninguno de los nombres especificados en ejecución.fuente
Si desea permanecer
topy mantener todos los demás procesos a la vista del contexto, puede presionarLpara buscar su proceso:Esto resaltará cualquier proceso con
chromeel nombre y lo mostrará . Use¶ ir al próximo partido.Puede presionar
cpara cambiar entre mostrar el nombre del proceso y el comando completo.fuente
man top | less +/5dTambién puede usar un filtro en la parte superior para aislar procesos específicos. Presione 'O' para que aparezca el indicador del filtro. Luego escriba un filtro formateado como CAMPO = valor. Por ejemplo, para filtrar todos los procesos tmux, use:
Use '=' para restablecer los filtros. Consulte la sección titulada 'FILTRADO' en la página principal del manual.
fuente