Woordenlijst/Als er iets misgaat

PID

Ook: proces-ID

Kort antwoord

Een PID, of proces-ID, is een nummer dat macOS aan elk actief proces geeft om het te herkennen. Geen twee actieve processen delen een PID, maar een nummer kan opnieuw worden gebruikt nadat het proces is beëindigd.

Activiteitenweergave toont de PID in een eigen kolom. Terminal-opdrachten zoals kill, sample en lsof gebruiken de PID om te weten welk proces je bedoelt, omdat meerdere processen dezelfde naam kunnen hebben.

Op macOS is PID 0 kernel_task en PID 1 launchd, het eerste proces, dat de rest van het systeem start. Apps die je opent, krijgen hogere nummers, en bij elke start een nieuwe PID.

Zo vind je de PID van een app

Zoek in Activiteitenweergave de app op in de lijst en lees de kolom PID af. Is de kolom verborgen, kies dan Weergave > Kolommen > PID.

In Terminal toont pgrep -l Safari de overeenkomende processen met hun PID. ps -p <PID> -o pid,ppid,comm toont de naam van een proces en de PID van zijn bovenliggende proces.

Wat een bovenliggende PID je vertelt

Elk proces behalve het allereerste heeft een bovenliggend proces: het proces dat het heeft gestart. Kies je in Activiteitenweergave Weergave > Alle processen, hiërarchisch, dan zie je die verbanden tussen bovenliggende en onderliggende processen als een boom.

Zo vind je een PID in Terminal

Procesnamen in Terminal kunnen afwijken van appnamen. Veel apps draaien helperprocessen met namen als ‘App Helper (Renderer)’, elk met een eigen PID.

  1. Open Terminal via Apps > Hulpprogramma’s.
  2. Voer pgrep -lx Finder uit voor de PID van een proces dat precies Finder heet. Laat x weg om op een deel van een naam te zoeken.
  3. Heeft een app meerdere processen, voer dan pgrep -lf "Google Chrome" uit om op de volledige opdrachtregel te zoeken.
  4. Voer echo $$ uit om de PID van je eigen shell te zien.

Zo vind je bij welke app een PID hoort

Foutmeldingen en logbestanden noemen vaak een PID zonder naam. Voer ps -p <PID> -o pid,ppid,user,command uit om hem op te zoeken. Het toont het volledige pad van het programma, welke gebruiker het draait en de PID van het bovenliggende proces.

Klik in Activiteitenweergave op de kolomkop PID om erop te sorteren en scrol naar het nummer. Dubbelklik op het proces om het infovenster te openen, dat ook het bovenliggende proces toont.

Geeft ps niets terug, dan is het proces al beëindigd.

Wat je met een PID kunt doen

Controleer eerst de naam met ps -p <PID>. PID's worden hergebruikt, dus een nummer dat je eerder hebt gekopieerd, kan nu bij een ander proces horen.

  • kill <PID> vraagt het proces te stoppen. kill -9 <PID> beëindigt het meteen.
  • sample <PID> 5 legt 5 seconden vast wat het proces doet.
  • lsof -p <PID> toont de bestanden en netwerkverbindingen die het open heeft.
  • lsof -a -p <PID> -d cwd toont de map waarin het draait.
  • top -pid <PID> toont het live CPU- en geheugengebruik. Druk op q om te stoppen.

Wanneer je een PID gebruikt in plaats van een naam

Opdrachten die op naam werken, zoals killall Safari of pkill Safari, werken op elk proces dat overeenkomt. killall stuurt standaard het stopsignaal naar alle overeenkomende processen van jou, en pkill vindt elk proces waarvan de naam de tekst bevat die je typt.

Voor één app is dat prima, maar het is riskant als veel processen dezelfde naam hebben. Een browser kan tientallen helperprocessen draaien, en meerdere kopieën van node of python kunnen bij verschillende projecten horen. Een PID wijst precies één proces aan, dus gebruik die als je er één wilt stoppen en de rest wilt laten draaien.

Gebruik je toch een naam, bekijk dan eerst wat er overeenkomt. pgrep -l <name> toont waar pkill op zou werken, en killall -d <name> toont wat killall zou doen zonder iets te versturen.

Vragen die mensen stellen

Wat betekent PID in Activiteitenweergave?

PID staat voor proces-ID. Het is een uniek nummer voor elk actief proces, gebruikt om processen uit elkaar te houden en om ze met Terminal-opdrachten aan te spreken.

Houdt een app dezelfde PID?

Alleen zolang hij draait. Stop je een app en open je hem opnieuw, dan krijgt hij een nieuwe PID.

Wat is PID 1 op een Mac?

PID 1 is launchd, het proces dat andere processen op macOS start en beheert. Stop het nooit.

Hoe stop ik een proces via de PID op een Mac?

Voer kill <PID> uit in Terminal. Stopt het niet, dan beëindigt kill -9 <PID> het meteen, waarbij niet-bewaarde gegevens verloren kunnen gaan.

Kunnen twee processen dezelfde PID hebben?

Niet tegelijk. Een PID kan aan een nieuw proces worden gegeven nadat het oude is beëindigd.

Wat is PID 0 in Activiteitenweergave?

PID 0 is kernel_task, dat de kernel van macOS vertegenwoordigt. Je kunt het niet stoppen.

Gerelateerd

Kom je van Windows? Bekijk Taakbeheer voor Mac, of de beste alternatieven voor Activiteitenweergave. Of blader door alle begrippen in de woordenlijst.