¿Cómo mostrar solo los procesos * no * que coinciden con un filtro?

12

Estoy usando htoppara monitorear interactivamente mis procesos.

Sin embargo, a veces algunos procesos se interponen y me gustaría filtrarlos.

Desafortunadamente, parece que el filtro integrado de htop (p F4. Ej. ) Solo me permite definir un filtro positivo (solo se mostrarán las coincidencias), y no los filtros negativos (se muestran todas, excepto las coincidencias).

Finalmente, no he encontrado ninguna documentación sobre la sintaxis real de la cadena de búsqueda (las expresiones regulares no parecen funcionar).

umläute
fuente
AFAIK no es posible. ¿Alguna buena razón para no usar top? Puedes hacerlo fácilmente con él.
sebelk
El filtrado de FWIW htop debería obtener el filtrado de expresiones regulares pronto, hay una solicitud de extracción completa aunque aún no fusionada en GitHub. github.com/hishamhm/htop/pull/428
Richard Michael

Respuestas:

5

No sé si es factible htoppero si usar otra topimplementación es una opción, con la topimplementación en procpsLinux (generalmente la implementación predeterminada allí), desde adentro top, puede

  1. enter o(o Opara mayúsculas y minúsculas)
  2. ingrese !COMMAND=notwanted(o !USER=unwanted)

para filtrar los procesos cuyo nombre (o línea de comando después de presionar c) contiene notwanted(o cuyo nombre de usuario contiene unwanted). Ingrese =para eliminar todos los filtros.

Puede filtrar en cualquiera de los campos que desee, pero solo cuando se muestran. Por ejemplo, para excluir las tareas del núcleo, puede solicitar CODEque se muestre la columna (con f) y luego filtrar CODE>0(con o).

Tenga en cuenta que la interfaz predeterminada de esa topimplementación puede parecer más cruda que la de htop, pero en realidad tiene muchas más funciones (y puede configurarla con color e información adicional si es necesario).

Stéphane Chazelas
fuente
2

No sé de una manera directa con htop

Sin embargo, es posible que pueda usar las habilidades de negación pgrepy alimentar una lista pid parahtop

Algo como

htop -p "$(pgrep -vfd, 'java|python')"

Esto tiene la desventaja obvia de no tener en cuenta los procesos que comienzan después de htopcomenzar a ejecutarse

iruvar
fuente
1
buena idea, pero lo que realmente quiero hacer es filtrar los procesos de "basura" cuando los veo; por lo que su solución no es realmente "interactivo" en ese sentido ...
Umlaute