comment afficher uniquement les processus * ne correspondant pas * à un filtre?

12

J'utilise htoppour surveiller interactivement mes processus.

Cependant, parfois quelques processus "gênent" et je voudrais les filtrer.

Malheureusement, il semble que le filtre intégré de htop (par exemple F4) ne me permette que de définir un filtre positif (seules les correspondances seront affichées), et non les filtres négatifs (toutes sauf les correspondances sont affichées).

Enfin, je n'ai trouvé aucune documentation sur la syntaxe réelle de la chaîne de recherche (les expressions rationnelles ne semblent pas fonctionner).

umläute
la source
L'AFAIK n'est pas possible. Une bonne raison de ne pas utiliser le top? Vous pouvez le faire facilement avec.
sebelk
Le filtrage htop FWIW devrait bientôt bénéficier d'un filtrage regex, il existe une requête d'extraction complète mais toujours non fusionnée sur GitHub. github.com/hishamhm/htop/pull/428
Richard Michael

Réponses:

5

Je ne sais pas si c'est faisable avec htopmais si l'utilisation d'une autre topimplémentation est une option, avec l' topimplémentation sous procpsLinux (généralement l'implémentation par défaut là-bas), de l'intérieur top, vous pouvez

  1. entrez o(ou Opour une correspondance sensible à la casse)
  2. entrez !COMMAND=notwanted(ou !USER=unwanted)

pour filtrer les processus dont le nom (ou la ligne de commande après avoir appuyé c) contient notwanted(ou dont le nom d'utilisateur contient unwanted). Entrez =pour supprimer tous les filtres.

Vous pouvez filtrer sur l'un des champs que vous souhaitez, mais uniquement lorsqu'ils sont affichés. Par exemple, pour exclure les tâches du noyau, vous pouvez demander que la CODEcolonne soit affichée (avec f) puis filtrer sur CODE>0(avec o).

Notez que l'interface par défaut de cette topimplémentation peut sembler plus grossière que celle de htop, mais elle a en fait beaucoup plus de fonctionnalités (et vous pouvez la configurer avec des couleurs et des informations supplémentaires si nécessaire).

Stéphane Chazelas
la source
2

Je ne connais pas de voie directe avec htop

Cependant, vous pourrez peut-être utiliser les capacités négatives pgrepet alimenter une liste de pid pourhtop

Quelque chose comme

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

Cela présente l'inconvénient évident de ne pas tenir compte des processus qui démarrent après le htopdémarrage de l'exécution

iruvar
la source
1
bonne idée, mais ce que je veux vraiment faire, c'est filtrer les processus "poubelles" quand je les vois; donc votre solution n'est pas vraiment "interactive" dans ce sens ...
umläute