Pour éviter un laborieux ps aux | grep firefox | grep -v grep
, il y a ps aux | grep [f]irefox
. Merci, Duke. :)
Explication : on demande de chercher une ligne qui contient « f » puis la chaîne « irefox ». La ligne du processus « grep --color=auto [f]irefox
» ne correspond pas, car c'est une chaîne qui contient « [ » + « f » + « ] » + « i » +. Il n'y a pas de chaîne qui commence par f et qui finit par « irefox » sur cette ligne, en gros.
On peut aller plus loin. 99 % du temps, quand je filtre la sortie de ps
, c'est pour confirmer la présence d'un processus.
Si je veux acquérir une vision globale des processus, je préfère une vue dynamique à la htop
/ top
.
Dans ce cas, ps -fC firefox-esr
fait le boulot, si l'on connaît le nom du processus et si c'est exploitable. Genre chercher un programme Java est souvent vain puisque le nom de l'exécutable sera « java », le nom visuel du programme arrive dans les arguments, qui ne sont pas considérés par ps -fC
.
On peut aller légèrement plus loin (autant de caractères mais plus simple, je trouve) : pgrep firefox
, le copain de pkill
. Merci Johndescs. :)
pgrep -x
et ps -C
sont très utiles dans des scripts : concis (plus que "ps | grep | grep -v grep") et la recherche se fait uniquement sur le nom des programmes, pas sur leurs arguments.
Ça évite qu'un script lancé par CRON ne fasse plus rien car ps aux | grep apt | grep -v grep
trouve toujours un processus (alors qu'apt n'est pas en cours d'exécution) car il capture thermald --adaptative
(« apt » dans « adaptative »). Oui, c'est du vécu.