Glossar/Wenn etwas schiefgeht

PID

Auch: Prozess-ID

Kurze Antwort

Eine PID oder Prozess-ID ist eine Nummer, die macOS jedem laufenden Prozess zuweist, um ihn zu erkennen. Zwei laufende Prozesse haben nie dieselbe PID, aber eine Nummer kann wiederverwendet werden, wenn ihr Prozess beendet ist.

Die Aktivitätsanzeige zeigt die PID in einer eigenen Spalte. Terminal-Befehle wie kill, sample und lsof nutzen die PID, um zu wissen, welchen Prozess du meinst, denn mehrere Prozesse können denselben Namen haben.

Unter macOS ist PID 0 kernel_task und PID 1 launchd, der erste Prozess, der den Rest des Systems startet. Apps, die du öffnest, bekommen höhere Nummern, und bei jedem Start eine neue PID.

So findest du die PID einer App

Suche die App in der Liste der Aktivitätsanzeige und lies die Spalte „PID“ ab. Ist die Spalte ausgeblendet, wähle „Darstellung“ > „Spalten“ > „PID“.

Im Terminal listet pgrep -l Safari passende Prozesse mit ihren PIDs auf. ps -p <PID> -o pid,ppid,comm zeigt den Namen eines Prozesses und die PID seines übergeordneten Prozesses.

Was die übergeordnete PID verrät

Jeder Prozess außer dem allerersten hat einen übergeordneten Prozess, der ihn gestartet hat. Mit „Darstellung“ > „Alle Prozesse, hierarchisch“ zeigt die Aktivitätsanzeige diese Beziehungen zwischen über- und untergeordneten Prozessen als Baum.

So findest du eine PID im Terminal

Prozessnamen im Terminal können sich von App-Namen unterscheiden. Viele Apps starten Hilfsprozesse mit Namen wie „App Helper (Renderer)“, jeder mit eigener PID.

  1. Öffne das Terminal unter „Programme“ > „Dienstprogramme“.
  2. Führe pgrep -lx Finder aus, um die PID eines Prozesses zu bekommen, der genau Finder heißt. Lass x weg, um nach einem Teil des Namens zu suchen.
  3. Hat eine App mehrere Prozesse, führe pgrep -lf "Google Chrome" aus, um mit der vollständigen Befehlszeile abzugleichen.
  4. Die PID deiner eigenen Shell siehst du mit echo $$.

So findest du heraus, zu welcher App eine PID gehört

Fehlermeldungen und Protokolldateien nennen oft eine PID ohne Namen. Um sie nachzuschlagen, führe ps -p <PID> -o pid,ppid,user,command aus. Der Befehl zeigt den vollständigen Pfad des Programms, welcher Benutzeraccount es ausführt und die PID seines übergeordneten Prozesses.

Klicke in der Aktivitätsanzeige auf die Spaltenüberschrift „PID“, um danach zu sortieren, und scrolle zur Nummer. Doppelklicke auf den Prozess, um sein Informationsfenster zu öffnen, das auch den übergeordneten Prozess zeigt.

Gibt ps nichts aus, ist der Prozess bereits beendet.

Was du mit einer PID tun kannst

Prüfe zuerst den Namen mit ps -p <PID>. PIDs werden wiederverwendet, eine Nummer, die du vorhin kopiert hast, kann also inzwischen zu einem anderen Prozess gehören.

  • kill <PID> fordert den Prozess zum Beenden auf. kill -9 <PID> beendet ihn sofort.
  • sample <PID> 5 zeichnet 5 Sekunden lang auf, was der Prozess tut.
  • lsof -p <PID> listet die Dateien und Netzwerkverbindungen, die er geöffnet hat.
  • lsof -a -p <PID> -d cwd zeigt den Ordner, in dem er läuft.
  • top -pid <PID> zeigt seine aktuelle CPU- und Speichernutzung. Mit q beendest du die Anzeige.

Wann du eine PID statt eines Namens nutzt

Befehle, die mit Namen arbeiten, wie killall Safari oder pkill Safari, wirken auf jeden passenden Prozess. Standardmäßig schickt killall das Beenden-Signal an alle passenden Prozesse, die dir gehören, und pkill trifft jeden Prozess, dessen Name den eingegebenen Text enthält.

Für eine einzelne App ist das in Ordnung, aber riskant, wenn viele Prozesse denselben Namen haben. Ein Browser kann Dutzende Hilfsprozesse starten, und mehrere Instanzen von node oder python können zu verschiedenen Projekten gehören. Eine PID trifft genau einen Prozess. Nutze sie also, wenn du einen stoppen und die übrigen weiterlaufen lassen willst.

Wenn du doch einen Namen nutzt, sieh dir vorher die Treffer an. pgrep -l <name> listet, worauf pkill wirken würde, und killall -d <name> zeigt, was killall tun würde, ohne etwas zu senden.

Häufige Fragen

Was bedeutet PID in der Aktivitätsanzeige?

PID steht für Prozess-ID. Es ist eine eindeutige Nummer für jeden laufenden Prozess, mit der sich Prozesse unterscheiden und mit Terminal-Befehlen gezielt ansprechen lassen.

Behält eine App dieselbe PID?

Nur solange sie läuft. Wenn du eine App beendest und wieder öffnest, bekommt sie eine neue PID.

Was ist PID 1 auf dem Mac?

PID 1 ist launchd, der Prozess, der unter macOS andere Prozesse startet und verwaltet. Er sollte nie beendet werden.

Wie beende ich auf dem Mac einen Prozess über seine PID?

Führe kill <PID> im Terminal aus. Beendet er sich nicht, beendet ihn kill -9 <PID> sofort, wobei ungesicherte Daten verloren gehen können.

Können zwei Prozesse dieselbe PID haben?

Nicht gleichzeitig. Eine PID kann an einen neuen Prozess vergeben werden, nachdem der alte beendet ist.

Was ist PID 0 in der Aktivitätsanzeige?

PID 0 ist kernel_task, der Stellvertreter für den macOS-Kernel. Er lässt sich nicht beenden.

Verwandte Begriffe

Du kommst von Windows? Mehr dazu: Task-Manager für den Mac oder die besten Alternativen zur Aktivitätsanzeige. Oder stöbere durch alle Begriffe im Glossar.