Pelo va encore rouspéter que ce qui suit ne concerne que les développeurs, mais
que voulez-vous ! Ce type d'info a aussi sa place dans un forum tel que le nôtre.
Trouvé au hasard de mes travaux, mais ce peut être utile à plusieurs.
pidof et pgrep sont deux utilitaires qui renseignent sur les numéros d'identité des
processus. La différence est que pidof trouve le nom exact de l'exécutable, tandis
que pgrep trouve une suite de lettres dans le nom de l'exécutable.
Car pgrep est un grep. Et que fait grep ? Il trouve toutes les instances de « xyz »,
par exemple, dans un texte. Pour pgrep, la base de données des processus est
un texte, et il fonctionne dedans comme grep le ferait avec
Code: Select all
ps | grep xyz
Contexte --
La barre de tâches bmpanel2 est en fonction sur mon bureau, et en même temps,
je fais jouer un morceau de musique avec bmp.
Si je tape en terminal
Code: Select all
pgrep bmp
Si je tape
Code: Select all
pidof bmp
Comme ni pgrep ni pidof n'aiffiche le nom de l'exécutable à côté du numéro de
processus, il peut y avoir confusion pour le développeur.
Il y a encore plus précis, que je vous laisse étudier :
Code: Select all
ps | awk '$4=="leafpad" && $NF ~ /texte1.txt/ { print $1 }'
On obtient ainsi le numéro de processus exact pour l'instance de leafpad portant
le texte « texte1.txt ». Si vous avez d'ouverte une 2e instance de leafpad avec le
texte « texte2.txt », le numéro de processus de cette instance-là de leafpad
ne sera pas affiché.
Pour ceux qui ne connaissent ni awk ni ps :
ps affiche l'exécutable dans le 4e champ de la ligne et son numéro de processus
dans le 1er champ de la ligne;
$NF, dans le jargon de awk, désigne le dernier champ de la ligne, et ps affiche
l'élément traité par l'exécutable en dernier. (Sauf de rares exceptions.)
En français ordinaire, la ligne de code ci-dessus veut dire :
Souvenons-nous que la politesse, à l'égard des programmes, c'est d'utiliser une« Mon cher awk,
Peux-tu me dire s.t.p. le numéro de processus de l'exécutable leafpad
qui a chargé le texte "texte1.txt" ?
Merci.
musher0 »
syntaxe correcte.
D'où cette petite note, qui, je l'espère, vous économisera du temps et vous évitera
peut-être quelques maux de tête !
En résumé :
pour trouver le numéro de processus d'une tâche s'exécutant dans son ordinateur
-- si la précision n'a pas trop d'importance, utilisons < pgrep >;
-- si la précision a de l'importance, utilisons < pidof >;
-- si la précision est d'une extrême importance, utilisons la combinaison
___ < ps | awk > telle qu'expliquée ci-dessus.
À+