À chaque fois qu’un programme est exécuté, le noyau crée un processus associé au programme. En termes simples, un processus est une instance en cours d’exécution d’un programme sous Linux.
Le processus créé par le noyau est appelé le « Processus parent ». Les processus dérivés ou créés à partir du processus parent sont connus sous le nom de « Processus enfants ». Un processus parent peut être composé de plusieurs processus enfants, chacun ayant un PID (Identifiant de processus) unique mais partageant le même PPID.
Dans ce guide, nous explorons différentes façons d’identifier les identifiants de processus parent (PPID) ou les processus sur un système Linux.
Quelle est la différence entre un PID et un PPID?
A program that is loaded into memory and running is known as a process. Once started, the process is given a unique number known as the process ID (PID) that uniquely identifies it in the system. The process can be referred to at any time using its PID. For example, to kill a process, you will have to know its PID first.
En plus du PID, chaque processus reçoit un identifiant de processus parent ID (PPID) indiquant quel processus l’a déclenché. Ainsi, le PPID est le PID du processus parent.
Pour illustrer cela, supposons que le processus 5 avec un PID de 5050 lance le processus 6. Le processus 6 recevra un PID unique tel que 6670, mais conservera le PPID de 5050.
Le processus parent ici est le processus 5 et le processus enfant est 6. Le processus enfant reçoit un PID unique, mais le PPID est le même que le PID du processus parent (processus 5)
A single parent can start multiple several child processes, each with a unique PID but all sharing the same PPID.
Trouver l’identifiant de processus parent (PPID) sous Linux
Il existe deux approches principales pour trouver le PPID d’un processus en cours d’exécution sur un système Linux:
- En utilisant la commande pstree.
- Utilisation de la commande ps.
Trouver l’ID de processus parent Linux à l’aide de la commande pstree
A pstree command is a command-line tool that displays running processes as a tree, which makes for a convenient way of displaying processes in a hierarchy. It shows the parent-child relationship in a tree hierarchy.
Avec l’option -p
, le pstree affiche tous les processus parents en cours d’exécution avec leurs processus enfants correspondants et leurs PID respectifs.
$ pstree -p

Dans la sortie, nous pouvons voir les identifiants de processus parent avec les identifiants de processus enfant.
Pour illustrer, nous allons vérifier le PPID pour Mozilla Firefox avec l’ensemble de la hiérarchie des processus en utilisant la commande suivante:
$ pstree -p | grep 'firefox'

Dans la sortie, vous pouvez voir que le PPID de Firefox est 3457 et les autres sont les PIDs des processus enfants.
Pour n’afficher que le PPID de Firefox et ignorer le reste de la sortie, dirigez la sortie vers la commande head avec -1
pour afficher la première ligne.
$ pstree -p | grep 'firefox' | head -1

Trouver l’ID de processus parent Linux à l’aide de la commande ps
L’autre option pour trouver le PPID d’un processus est la commande ps, qui est une commande largement utilisée qui affiche les processus en cours d’exécution sur un système Linux.
Lorsqu’elle est utilisée avec l’option -ef
, la commande ps liste tous les processus en cours d’exécution avec leurs détails tels que le UID, le PID, le PPID, etc.
$ ps -ef

Pour le réduire et afficher le PPID d’un processus spécifique, par exemple, Firefox, passez l’option -e
et faites passer la sortie à la commande grep comme indiqué.
$ ps -e | grep 'firefox'

Encore une fois, à partir de la sortie, vous pouvez voir que le PPID de Firefox est 3457.
Dans ce guide, nous avons démontré comment vous pouvez trouver les PPIDs des processus en cours d’exécution sur un système Linux. Vous pouvez utiliser soit la commande pstree soit la commande ps pour atteindre le même objectif.