fatmawati achmad zaenuri/Shutterstock.comPour trouver le ID de processus d'un processus Linux, utilisez la commande pidof, comme ceci : “pidof examplename”. Si vous ne connaissez qu'une partie du nom du PID, vous pouvez utiliser “pgrep examplenamefragment” à la place. Remplacez “examplename” et “examplenamefragment” par les termes que vous souhaitez rechercher.
Travailler avec un processus Linux signifie souvent connaître son ID de processus, ou PID. Il s'agit d'un numéro unique attribué à chaque logiciel en cours d'exécution. Voici deux façons de savoir de quoi il s'agit.
Table des matières
Qu'est-ce que un ID de processus Linux ?
Comment obtenir un PID Linux avec la commande pidof
Comment trouver des PID avec la commande pgrep sous Linux
Quoi Est-ce qu'un ID de processus Linux ?
En interne, Linux garde une trace de son processus en cours d'exécution en leur attribuant un numéro d'identification unique, appelé ID de processus, ou PID. Chaque application, utilitaire et démon en cours d'exécution a un PID.
Les PID sont de simples valeurs entières. Un processus nouvellement démarré recevra un PID supérieur d'une unité au dernier PID émis. Ainsi, le processus avec le PID le plus élevé est le processus le plus récent, c'est-à-dire le plus récemment lancé. Cela continue jusqu'à ce que le système atteigne la valeur maximale pour un PID.
La limite supérieure pour un PID est 32768. Une fois ce chiffre atteint, Linux revient au début et recherche un PID qui est devenu gratuit car le processus qui le possédait auparavant s'est terminé.
Le processus avec un PID de 1 est le premier processus lancé lorsque Linux est lancé par les processus de démarrage. Sur les systèmes basés sur systemd qui seront systemd . Sur d'autres systèmes, il s'agira probablement d'init, bien que certaines distributions Linux utilisent des alternatives telles que OpenRc ou s6.
Parfois, il est utile de découvrir le PID d'un processus, généralement parce que vous souhaitez effectuer une action sur ce processus. Voici deux méthodes différentes pour trouver le PID d'un processus lorsque vous connaissez le nom du processus.
RELATED : Que sont les PID Unix et comment fonctionnent-ils ?
Comment obtenir un PID Linux avec la commande pidof
La commande pidof peut être considérée comme la combinaison de “PID” ; et “de.” C'est comme demander quel est le PID de ce processus ? Si nous utilisons la commande sans paramètres, cela ne fait rien. Il vous renvoie silencieusement à l'invite de commande. Nous devons spécifier un nom de processus.
pidof bash

pidof nous indique que le PID du shell Bash est 8304. Nous pouvons le vérifier avec la commande ps. Tout ce que nous avons à faire est d'appeler ps sans paramètres. Il rendra compte des processus en cours d'exécution dans la session en cours.
ps
Parce que ps rend compte de tous les processus qu'il peut trouver, y compris lui-même, il nous dit qu'il y a un processus bash et un processus ps en cours d'exécution. Comme on pouvait s'y attendre, le processus bash a le même PID que pidof a rapporté.
Si vous avez plus d'une fenêtre de terminal ouverte, pidof les rapportera toutes.
pidof bash

Notez que les PID sont répertoriés du plus haut au plus bas ou, en d'autres termes, du plus récent au plus ancien .
RELATEDComment utiliser la commande ps pour surveiller les processus Linux
Ce que cela ne montre pas, c'est que vous n'êtes peut-être pas le propriétaire de tous ces processus. pidof trouve tous les processus avec des noms correspondants, quel que soit leur propriétaire. Regardons plus en profondeur en redirigeant la sortie vers grep. Nous utilisons les options -e (sélectionner tous les processus) et -f (liste complète) avec ps .
ps -ef | grep bash

Deux des processus bash appartiennent à l'utilisateur dave, le troisième appartient à l'utilisateur mary.
Parfois, une application génère de nombreux processus, chacun recevant son propre PID. C'est ce que nous obtenons avec Google Chrome.
pidof chrome

RELATED : Pourquoi Chrome a-t-il autant de processus ouverts ?
Par défaut, pidof signale tous les processus. Si nous le voulons, nous pouvons demander uniquement le plus récent de ces processus. C'est exactement ce que fait l'option -s (single shot).
pidof -s chrome

Utiliser la commande kill pour tuer manuellement tous les processus chrome serait fastidieux. Si nous capturons la liste des processus dans une variable, nous pouvons transmettre cette variable à la commande kill. La commande kill peut accepter plusieurs PID sur sa commande, elle accepte donc volontiers notre entrée et tue tous les processus pour nous.
pid=$(pidof chrome) echo $pid kill $pid pidof chrome

La première commande collecte la sortie de pidof et l'assigne à notre variable, que nous nommons pid. Nous n'avons pas besoin de l'afficher à l'écran, nous le faisons simplement pour montrer ce que contient notre variable.
Nous passons la variable à la commande kill, puis utilisons pidof une fois de plus pour vérifier s'il reste des processus Chrome. Ils ont tous été tués.
Une particularité de pidof est qu'il ne renverra pas le PID d'un script shell. Il renvoie le PID du shell bash qui exécute le script. Pour voir le shell qui exécute un script, nous devons utiliser l'option -x (scripts).
pidof -x sleep-loop.sh ps -e | grep bash

pidof renvoie le PID d'un shell bash, et ps nous montre qu'il y a deux shells en cours d'exécution. L'un est le shell exécutant la commande pidof, et l'autre est le shell exécutant le script.
RELATED : Comment utiliser la commande grep sous Linux
Comment trouver des PID avec la commande pgrep sous Linux
La commande pgrep fonctionne un peu comme pidof pour obtenir les ID de processus sous Linux. Cependant, il ne se contente pas de trouver les processus qui correspondent exactement à l'indice de recherche, il renvoie également les PID de tous les processus dont le nom contient le texte de recherche.
Voici un exemple sur un ordinateur sur lequel Firefox est exécuté.
pgrep firefox pgrep fire pgrep fox pgrep refo

Toutes ces commandes trouvent le processus Firefox et renvoient le PID. Mais si vous aviez saisi la commande :
pgrep refo
Tout seul, comment sauriez-vous si pgrep avait trouvé Firefox et non, disons, un dameon appelé preformd ?
Si vous ajoutez l'option -l (nom de la liste), pgrep listera le nom du processus à côté du PID.
pgrep refo -l

S'il existe plusieurs instances d'un processus correspondant, elles sont toutes répertoriées.
pgrep bash

Remarque qu'ils sont répertoriés dans l'ordre croissant, qui est l'ordre inverse de la sortie de pidof. Ils sont répertoriés du processus le plus ancien au processus le plus récent. Comme nous l'avons vu avec pidof, tous les processus listés ne vous appartiennent pas nécessairement.
L'option -u (ID utilisateur) vous permet de rechercher des processus correspondant au texte de recherche et appartenant à l'utilisateur nommé.
pgrep bash -u dave

Cette fois, nous voyons trois processus bash dans les résultats. L'autre est utilisé par mary.
pgrep bash -u mary

Nous pouvons enchaîner les noms d'utilisateur sous forme de liste séparée par des virgules.
pgrep bash -u dave,mary -l

Et nous pouvons demander à voir tous les processus pour un utilisateur spécifique.
pgrep -u dave -l

Pour voir la ligne de commande complète, utilisez l'option -a (liste complète).
pgrep -u dave -a
< /p>
Un mot sur la propriété du PID
Tous les processus système n'appartiennent pas à l'utilisateur root. Beaucoup le sont, bien sûr, mais pas tous. Par exemple, cette commande fonctionne :
pgrep avahi-daemon
Mais cette commande échoue.
pgrep -u root avahi-daemon
Elle échoue car root ne possède pas ce processus. Le véritable propriétaire est un utilisateur du système appelé “avahi.” En utilisant le nom d'utilisateur correct, la commande fonctionne.
pgrep -u avahi avahi-daemon
C'est un petit piège à surveiller.
Fichiers de commandes Linux tar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · rejoindre · jq · plier · uniq · journalctl · tail · stat · ls ·fstab · echo · less · chgrp · chown · rev · regarder · chaînes · taper · renommer · zip · décompresser · monter · démonter · installer · fdisk · mkfs ·< /strong> rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · convert · rclone · shred · srm Processes alias · écran · haut · gentil · renice · progrès · strace · systemd · tmux ·chsh · historique · à · lot · gratuit · qui · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout ·< /strong> mur · oui · tuer · dormir · sudo · su · heure · groupadd · usermod · groupes · lshw · arrêt · redémarrage · arrêt · mise hors tension · passwd · lscpu · crontab · date · bg · fg Réseaux netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · creuser · doigt · nmap · ftp · curl · wget · qui · whoami · w · iptables · ssh-keygen · ufw
CONNEXE : Meilleurs ordinateurs portables Linux pour les développeurs et les passionnés