Lexique/Quand quelque chose ne va pas

PID

Aussi : identifiant de processus, process ID

En bref

Un PID, ou identifiant de processus, est un numéro que macOS attribue à chaque processus en cours pour l’identifier. Deux processus en cours n’ont jamais le même PID, mais un numéro peut être réutilisé une fois son processus terminé.

Le Moniteur d’activité affiche le PID dans sa propre colonne. Les commandes du Terminal comme kill, sample et lsof utilisent le PID pour savoir de quel processus vous parlez, puisque plusieurs processus peuvent porter le même nom.

Sur macOS, le PID 0 est kernel_task et le PID 1 est launchd, le premier processus, qui démarre le reste du système. Les apps que vous ouvrez reçoivent des numéros plus élevés, et un nouveau PID à chaque lancement.

Comment trouver le PID d’une app

Dans le Moniteur d’activité, trouvez l’app dans la liste et lisez la colonne PID. Si la colonne est masquée, choisissez Présentation > Colonnes > PID.

Dans le Terminal, pgrep -l Safari liste les processus correspondants avec leur PID. ps -p <PID> -o pid,ppid,comm affiche le nom d’un processus et le PID de son parent.

Ce que révèle le PID parent

Chaque processus, sauf le tout premier, a un parent : le processus qui l’a lancé. Dans le Moniteur d’activité, choisir Présentation > Toutes les opérations, hiérarchiquement affiche ces liens parent-enfant sous forme d’arbre.

Comment trouver un PID dans le Terminal

Les noms de processus dans le Terminal peuvent différer des noms d’apps. Beaucoup d’apps font tourner des processus utilitaires aux noms comme « App Helper (Renderer) », chacun avec son propre PID.

  1. Ouvrez le Terminal depuis Applications > Utilitaires.
  2. Lancez pgrep -lx Finder pour obtenir le PID d’un processus dont le nom est exactement Finder. Retirez x pour chercher une partie du nom.
  3. Si une app a plusieurs processus, lancez pgrep -lf "Google Chrome" pour chercher dans la ligne de commande complète.
  4. Pour voir le PID de votre propre shell, lancez echo $$.

Comment trouver à quelle app appartient un PID

Les messages d’erreur et les fichiers journaux mentionnent souvent un PID sans nom. Pour le retrouver, lancez ps -p <PID> -o pid,ppid,user,command. La commande affiche le chemin complet du programme, l’utilisateur qui l’exécute et le PID de son parent.

Dans le Moniteur d’activité, cliquez sur l’en-tête de la colonne PID pour trier, puis faites défiler jusqu’au numéro. Double-cliquez sur le processus pour ouvrir sa fenêtre d’informations, qui indique aussi son processus parent.

Si ps n’affiche rien, le processus s’est déjà terminé.

Ce que vous pouvez faire avec un PID

Vérifiez d’abord le nom avec ps -p <PID>. Les PID sont réutilisés : un numéro copié plus tôt peut maintenant appartenir à un autre processus.

  • kill <PID> demande au processus de quitter. kill -9 <PID> l’arrête immédiatement.
  • sample <PID> 5 enregistre ce que fait le processus pendant 5 secondes.
  • lsof -p <PID> liste les fichiers et les connexions réseau qu’il a ouverts.
  • lsof -a -p <PID> -d cwd affiche le dossier dans lequel il tourne.
  • top -pid <PID> affiche son utilisation du processeur et de la mémoire en direct. Appuyez sur q pour quitter.

Quand utiliser un PID plutôt qu’un nom

Les commandes qui agissent par nom, comme killall Safari ou pkill Safari, touchent tous les processus correspondants. Par défaut, killall envoie le signal de sortie à tous les processus correspondants qui vous appartiennent, et pkill trouve tout processus dont le nom contient le texte saisi.

Cela convient pour une seule app, mais c’est risqué quand beaucoup de processus portent le même nom. Un navigateur peut faire tourner des dizaines de processus utilitaires, et plusieurs copies de node ou python peuvent appartenir à des projets différents. Un PID cible exactement un processus : utilisez-le quand vous voulez en arrêter un et laisser les autres tourner.

Si vous passez par un nom, vérifiez d’abord les correspondances. pgrep -l <name> liste ce sur quoi pkill agirait, et killall -d <name> affiche ce que ferait killall sans rien envoyer.

Questions fréquentes

Que signifie PID dans le Moniteur d’activité ?

PID signifie « process ID », identifiant de processus. C’est un numéro unique pour chaque processus en cours, qui sert à distinguer les processus et à les cibler avec des commandes du Terminal.

Une app garde-t-elle le même PID ?

Seulement tant qu’elle tourne. Quand vous quittez puis rouvrez une app, elle reçoit un nouveau PID.

Qu’est-ce que le PID 1 sur Mac ?

Le PID 1 est launchd, le processus qui démarre et gère les autres processus sur macOS. Il ne faut jamais le quitter.

Comment tuer un processus par son PID sur Mac ?

Lancez kill <PID> dans le Terminal. S’il ne s’arrête pas, kill -9 <PID> l’arrête immédiatement, au risque de perdre des données non enregistrées.

Deux processus peuvent-ils avoir le même PID ?

Pas en même temps. Un PID peut être attribué à un nouveau processus une fois l’ancien terminé.

Qu’est-ce que le PID 0 dans le Moniteur d’activité ?

Le PID 0 est kernel_task, qui représente le noyau de macOS. Il ne peut pas être quitté.

Voir aussi

Vous venez de Windows ? Consultez Gestionnaire des tâches pour Mac, ou les meilleures alternatives au Moniteur d’activité. Ou parcourez tous les termes du lexique.