¿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 chrome
o 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 | chrome
para obtener pid (deja que se muestre pid2034
) y luegotop | grep 2034
top | grep chrome
funcionó perfectamente, ¡gracias!ps -x | process_name
obtener 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
grep
con tuberías|
de modotop
ygrep
de aplicación en paralelo;top
salida dada agrep
(como entrada) ygrep chrome
filtra las líneas coincidenteschrome
hasta que setop
detiene.fuente
top
solo trata la pregunta y OP desea filtrar el proceso en funcióntop
.sleep 10 & top | grep sleep
De 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?pid
lista 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 -p
pgrep "java" ``. gracias.pgrep
el 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,
top
por ejemplo, Ubuntu, presione oe ingrese, por ejemplo,COMMAND=chrome
para mostrar solo las entradas de laCOMMAND
columna que sean iguales achrome
.En Linux que usa la misma
top
implementación que Ubuntu, lea la sección FILTRADO en una ventana deltop
manual.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
top
y mantener todos los demás procesos a la vista del contexto, puede presionarL
para buscar su proceso:Esto resaltará cualquier proceso con
chrome
el nombre y lo mostrará . Use&
para ir al próximo partido.Puede presionar
c
para cambiar entre mostrar el nombre del proceso y el comando completo.fuente
man top | less +/5d
Tambié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