80 votes

Comment rechercher un processus par son nom sans utiliser grep ?

Afin de rechercher un processus, vous pouvez utiliser ps con grep .

Par exemple, pour rechercher firefox

ps aux | grep firefox

Comment obtenir la même réponse sans utiliser grep ?

91voto

muru Points 180007

El pgrep et sa sœur, la commande pkill existe précisément dans ce but :

  • pgrep firefox listera tous les processus dont les commandes correspondent à firefox
  • pgrep -f firefox listera tous les processus dont les lignes de commande complètes correspondent à firefox
  • pgrep -x firefox listera tous les processus dont les commandes correspondent exactement à firefox
  • ... et ainsi de suite.

Et naturellement, pgrep s'exclura lui-même de la correspondance, de sorte qu'aucun des éléments grep les rituels associés à ps | grep sont nécessaires.


L'autre série d'outils pour cela sont les pidof y killall des commandes. Elles ne sont pas aussi flexibles que pgrep y pkill .

  • pidof firefox listera les processus dont la commande est firefox

32voto

Maythux Points 77506
ps -fC process-name

exemple :

ps -fC firefox

de man ps

  -C cmdlist      Select by command name.
                       This selects the processes whose executable name is
                       given in cmdlist.

 -f              Do full-format listing. This option can be combined
                       with many other UNIX-style options to add additional
                       columns. It also causes the command arguments to be
                       printed. When used with -L, the NLWP (number of
                       threads) and LWP (thread ID) columns will be added. See
                       the c option, the format keyword args, and the format
                       keyword comm.

3voto

Sergiy Kolodyazhnyy Points 97292

top vous permet de rechercher une chaîne de caractères lorsque vous tapez sur une majuscule L le processus sera mis en évidence, et utilisez les touches fléchées haut et bas pour faire défiler la liste des processus. De même, htop permet de mettre en évidence un processus particulier lorsque vous tapez sur / . Y \ filtrera tous les processus dont le nom contient une chaîne particulière.

Pour ceux qui aiment l'awk, voici un oneliner en awk : ps -eF | awk '/process-name/ {print $11}' . Avec ps -eF Le nom du processus est toujours dans la 11ème colonne. Alternativement, si vous faites ps -eF | awk '{print $11}' | sort vous obtenez une liste triée de noms de processus, classés par ordre alphabétique. Passez-la dans less pour visualiser plus facilement la longue liste de fichiers.

3voto

daniel Points 41

Un truc sympa

$ps -ejH

Vous obtiendrez tous les processus avec des noms

exmple:
1747   568   568 ?        00:00:00   colord
1833  1832  1832 ?        00:00:00   gnome-keyring-d
2263   568   568 ?        00:00:00   udisksd
2311  2311  2311 ?        00:00:00   cupsd
2315  2315  2311 ?        00:00:00     dbus

Redirigez ou copiez la sortie vers un fichier et ouvrez-le ensuite. nano , appuyez sur Ctrl + W et vous pouvez rechercher le nom que vous voulez.

2voto

JoErNanO Points 121

Vous pouvez également utiliser htop puis appuyez sur F4 pour filtrer les résultats à l'aide d'une chaîne de caractères définie par l'utilisateur. Vous disposez également d'une fonction de recherche personnalisée en appuyant sur F3.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X