Skip to content

Schluss mit PID-Suchen: Hängende Programme im Linux-Terminal elegant mit pkill beenden

Jeder, der regelmäßig im Linux-Terminal arbeitet, kennt dieses Szenario: Ein Prozess – sei es der Browser, ein eigener Python-Webserver oder eine Entwicklungsumgebung – reagiert nicht mehr, blockiert Ressourcen oder lässt sich über die normale Benutzeroberfläche schlichtweg nicht mehr schließen.

Der klassische Weg, den viele gelernt haben, ist überraschend umständlich:

  1. ps aux | grep prozessname eingeben, um die Prozess-ID (PID) herauszufinden.
  2. In der unübersichtlichen Textausgabe die vier- bis fünfstellige Zahl suchen.
  3. Den Befehl kill 12345 abfeuern.

Das geht deutlich schneller und eleganter. Mit dem Befehl pkill (und seinem Verwandten killall) beendest du hängende Anwendungen direkt über ihren Namen – ohne jemals eine PID suchen zu müssen.

Die Wunderwaffe: So funktioniert pkill

pkill kombiniert das Suchen nach Prozessen und das Senden von Signalen in einem einzigen Schritt. Es durchsucht im Hintergrund alle laufenden Prozesse und schickt dem Treffer sofort das Beendigungssignal.

Ein einfacher Befehl reicht:

pkill firefox

Dieser eine Befehl sucht automatisch nach allen Prozessen, in deren Namen firefox vorkommt, und beendet sie sofort.

Die nützlichsten pkill-Kniffe für den Alltag

pkill kann noch weit mehr, als nur einfache Programmnamen abzufangen:

1. Nach vollständigen Befehlszeilen suchen (-f)

Manchmal heißt der Prozess einfach nur python3 oder node. Wenn du gezielt nur ein bestimmtes Skript beenden möchtest, hilft das Flag -f. Es durchsucht nicht nur den Prozessnamen, sondern die gesamte Befehlszeile inklusive aller Argumente:

pkill -f server.py

2. Ernst machen: Prozess erzwingen (-9)

Reagiert ein Prozess so schwerwiegend, dass er das normale Beendigungssignal (SIGTERM) ignoriert, kannst du mit dem Signal -9 (SIGKILL) den sofortigen Abbruch durch den Linux-Kernel erzwingen:

pkill -9 chrome

3. Nur eigene Prozesse beenden (-u)

Auf Mehrbenutzer-Systemen oder Servern möchtest du vermeiden, versehentlich Prozesse anderer Nutzer zu stören. Mit -u schränkst du den Befehl auf deinen eigenen User ein:

pkill -u <deinbenutzername> python

pkill vs. killall: Wo ist der Unterschied?

Im Terminal-Alltag begegnet man häufig auch dem Befehl killall. Beide erfüllen einen ähnlichen Zweck, unterscheiden sich aber im Detail:

  • killall sucht nach der exakten Übereinstimmung des Prozessnamens (z. B. beendet killall firefox exakt diesen Prozess).
  • pkill nutzt Musterabgleiche (Muster/RegEx). Suchst du nach pkill fire, wird auch firefox erfasst.

Fazit: Zeit sparen auf der Kommandozeile

Das manuelle Suchen nach PIDs über ps aux gehört ins Archiv der Linux-Geschichte. Mit pkill hast du ein extrem schnelles und präzises Werkzeug an der Hand, um festgefahrene Prozesse im Handumdrehen zu eliminieren und direkt weiterzuarbeiten.