Afin de rechercher un processus, vous pouvez utiliser ps
avec grep
name__.
Par exemple pour rechercher firefox
ps aux | grep firefox
Comment obtenir la même réponse sans utiliser grep
name__?
La commande pgrep
et son frère pkill
existent précisément pour cela:
pgrep firefox
listera tous les processus dont les commandes correspondent à firefox
pgrep -f firefox
listera tous les processus dont toutes les lignes de commande correspondent à firefox
pgrep -x firefox
listera tous les processus dont les commandes correspondent exactement à firefox
Et naturellement, pgrep
va s’exclure du match, donc aucun des rituels grep
associés à ps | grep
n’est nécessaire.
Les autres outils pour cela sont les commandes pidof
et killall
. Celles-ci ne sont pas aussi flexibles que pgrep
et pkill
.
pidof firefox
listera les processus dont la commande est firefox
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.
Un truc cool
$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 dans un fichier, puis ouvrez nano
name__, appuyez sur Ctrl+W et vous pouvez rechercher le nom que vous voulez.
top
vous permet de rechercher une chaîne lorsque vous frappez en majuscule L
; le processus est mis en surbrillance et utilisez les touches fléchées haut et bas pour parcourir la liste des processus. De même, la commande htop
permet de mettre en surbrillance un processus particulier lorsque vous appuyez sur /
. Et \
va filtrer tous les processus avec une chaîne particulière dans le nom.
Pour ceux qui aiment awk, voici un exemple de awk: ps -eF | awk '/process-name/ {print $11}'
. Avec ps -eF
le nom du processus est toujours dans la 11ème colonne. Sinon, si vous faites ps -eF | awk '{print $11}' | sort
, vous obtenez une liste triée des noms de processus, classés par ordre alphabétique. Introduisez-le dans la commande less
pour visualiser plus facilement la longue liste de fichiers.
Vous pouvez également utiliser htop
, puis appuyer sur F4 pour filtrer les résultats avec une chaîne correspondante définie par l'utilisateur. Vous avez également une fonctionnalité de recherche personnalisée disponible en appuyant sur F3.
Si le problème est lié à deux processus, vous pouvez utiliser niquement grep:
grep firefox /proc/*/cmdline
Je viens de lire cet alias ps sur le blog de Lennart Poettering. La sortie est conforme au système de contrôle parental du groupe de contrôle systemd:
alias psc='ps xawf -eo pid,user,cgroup,args'