Telkens wanneer een programma wordt uitgevoerd, maakt de kernel een proces aan dat is gekoppeld aan het programma. Simpel gezegd is een proces een draaiend exemplaar van een programma in Linux.
Het proces dat door de kernel is gemaakt, wordt aangeduid als het ‘Ouderproces’. Processen afgeleid of voortgebracht vanuit het ouderproces staan bekend als ‘Kindprocessen’. Een ouderproces kan bestaan uit meerdere kindprocessen, elk met een unieke PID (Process ID), maar met dezelfde PPID.
In deze gids onderzoeken we verschillende manieren om de Parent Process IDs (PPIDs) of processen te vinden op een Linux-systeem.
Wat is het verschil tussen een PID en 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.
Naast de PID krijgt elke proces een ouderproces ID (PPID) die laat zien welk proces het heeft opgezet. Daarom is de PPID de PID van het ouderproces.
Om dit in perspectief te plaatsen, stel je voor dat proces 5 met een PID van 5050 proces 6 start. Proces 6 krijgt een unieke PID zoals 6670, maar krijgt nog steeds de PPID van 5050.
Het ouderproces hier is proces 5 en het kindproces is 6. Het kindproces krijgt een unieke PID maar de PPID is hetzelfde als de PID van het ouderproces (proces 5)
A single parent can start multiple several child processes, each with a unique PID but all sharing the same PPID.
Parent Process ID (PPID) vinden in Linux
Er zijn twee belangrijke benaderingen om de PPID van een lopend proces te vinden op een Linux-systeem:
- Met behulp van de pstree-opdracht.
- Gebruik de ps command.
Zoek de Linux Process PPID met behulp van de pstree Command
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.
Met de -p
optie, de pstree toont alle actieve ouderprocessen samen met hun corresponderende kindprocessen en respectieve PID’s.
$ pstree -p

Uit het resultaat kunnen we de ouderproces-ID’s zien samen met de kindproces-ID’s.
Voor demonstratie gaan we de PPID controleren voor Mozilla Firefox samen met de volledige proceshiërarchie met de volgende opdracht:
$ pstree -p | grep 'firefox'

Uit het resultaat kunt u zien dat de PPID van Firefox 3457 is en de rest PIDs van kindprocessen zijn.
Om alleen de PPID van Firefox weer te geven en de rest van het resultaat te overslaan, gebruik de output met de head command met -1
om de eerste regel weer te geven.
$ pstree -p | grep 'firefox' | head -1

Zoek de Linux Process PPID met behulp van de ps Command
De andere optie voor het vinden van de PPID van een proces is de ps command, een breed gebruikte opdracht die de momenteel actieve processen op een Linux-systeem weergeeft.
Wanneer gebruikt met de -ef
optie, geeft de ps command alle actieve processen weer samen met hun details zoals de UID, PID, PPID, enz.
$ ps -ef

Om het te beperken en de PPID van een specifiek proces weer te geven, bijvoorbeeld Firefox, geef de -e
optie door en leid de uitvoer af naar de grep command zoals weergegeven.
$ ps -e | grep 'firefox'

Nogmaals, uit de uitvoer kun je zien dat de PPID van Firefox 3457 is.
In deze handleiding hebben we laten zien hoe je de PPIDs van processen kunt vinden die op een Linux-systeem draaien. Je kunt zowel de pstree command als de ps command gebruiken om hetzelfde doel te bereiken.