Der Befehl kill sendet Signale an laufende Prozesse. Am häufigsten wird er verwendet, um nicht reagierende Programme zu beenden.

Syntax

kill [OPTION] [PID]...
  • OPTION - Das Signal, das gesendet werden soll. Ohne Angabe wird SIGTERM (15) verwendet.
  • PID - Die Prozess-ID des Zielprozesses.

Die wichtigsten Signale

Der kill-Befehl kann verschiedene Signale senden. Die drei häufigsten sind:

SignalNummerBedeutung
SIGHUP1Konfiguration neu laden
SIGKILL9Prozess sofort beenden (nicht abfangbar)
SIGTERM15Prozess beenden (Standard)

Mit kill -l listest du alle verfügbaren Signale auf:

kill -l

Signale angeben

Signale kannst du auf drei Arten angeben:

kill -9 1234
kill -SIGKILL 1234
kill -KILL 1234

Alle drei Varianten senden das gleiche Signal an den Prozess mit der PID 1234.

Prozesse beenden

Um einen Prozess zu beenden, benötigst du seine Prozess-ID (PID). Diese findest du mit Befehlen wie ps, pgrep oder pidof.

Beispiel: Firefox beenden

Finde zuerst die PID des Firefox-Prozesses:

pidof firefox

Die Ausgabe zeigt eine oder mehrere PIDs:

6263 6199 6142 6076

Beende alle Firefox-Prozesse mit SIGTERM:

kill 6263 6199 6142 6076

Oder in einem Befehl kombiniert:

kill $(pidof firefox)

Prozess erzwungen beenden

Falls ein Prozess auf SIGTERM nicht reagiert, verwende SIGKILL:

kill -9 $(pidof firefox)

Vorsicht: SIGKILL beendet den Prozess sofort ohne Aufräumarbeiten. Ungespeicherte Daten gehen verloren. Verwende dieses Signal nur, wenn SIGTERM nicht funktioniert.

Konfiguration neu laden

Mit SIGHUP weist du einen Dienst an, seine Konfiguration neu zu laden, ohne ihn komplett neu zu starten.

sudo kill -1 $(cat /var/run/nginx.pid)

Dieser Befehl liest die PID des Nginx-Masterprozesses aus der PID-Datei und sendet SIGHUP. Nginx lädt daraufhin seine Konfiguration neu.

Spezielle PID-Werte

Der kill-Befehl interpretiert bestimmte PID-Werte speziell:

PIDBedeutung
> 0Signal an den Prozess mit dieser ID
0Signal an alle Prozesse der aktuellen Prozessgruppe
-1Signal an alle Prozesse des Benutzers
< -1Signal an alle Prozesse der Prozessgruppe mit der entsprechenden GID

Shell-Builtin vs. Binärdatei

kill existiert sowohl als Shell-Builtin als auch als eigenständige Binärdatei unter /bin/kill. Prüfe mit type welche Version verwendet wird:

type -a kill

Ausgabe:

kill ist ein integriertes Shell-Kommando
kill ist /bin/kill

Das Shell-Builtin hat Vorrang. Um explizit die Binärdatei zu nutzen, gib den vollständigen Pfad an:

/bin/kill -9 1234

Berechtigungen

Du kannst nur Signale an deine eigenen Prozesse senden. Für Prozesse anderer Benutzer benötigst du Root-Rechte:

sudo kill -9 1234

Zusammenfassung

Der kill-Befehl sendet Signale an Prozesse. SIGTERM (15) ist der Standard und ermöglicht dem Prozess ein sauberes Beenden. SIGKILL (9) erzwingt das sofortige Beenden. Mit SIGHUP (1) lädst du die Konfiguration eines Dienstes neu.

Verwandte Artikel