kill

Funktion

kill beendet einen Prozeß

Syntax

kill [-s Signal] [-p] [-a] [-l [Signalnummer]] Prozeß ...

Beschreibung

kill wird benutzt, um außer Kontrolle geratene (,,aufgehängte``) Prozesse, die sich nicht mehr auf normale Art beenden lassen, zu terminieren (beenden) oder um Signale an bestimmte Prozesse zu senden.

Das Signal kann mit seinem Namen oder mit der Singalnummer angegeben werden. Wenn kein Signal spezifiziert ist, wird SIGTERM (15) gesendet.

Ein Prozeß kann durch seine Prozeßnummer oder durch seinen Namen bezeichnet werden.

Signale können ohne Rootprivilegien nur an die eigenen Prozesse gesendet werden.

Wenn ein Prozeß ein Signal empfängt können verschiedene Fälle eintreten:

1.
Indem das Anwendungsprogramm eine spezielle Funktion zur Behandlung eines Signals bereitstellt kann dieses Signal abgefangen werden. Signale können damit zur asynchronen Fehler- bzw. Ausnahmebehandlung sowie zu einer primitiven Prozeßkommunikation genutzt werden. 
2.
Das Signal kann ignoriert werden. Das ist der Regelfall für alle Signale die nicht abgefangen werden.
3.
Die Signale SIGKILL und SIGSTOP können nicht abgefangen werden, sie werden direkt vom Kernel behandelt. Mit SIGKILL (9) wird der Prozeß sofort beendet.

In der bash ist ein kill-Kommando eingebaut, daß dieses externe Programm verdeckt, wenn nicht ausdrücklich mit dem command-Shellkommando das externe Programm aufgerufen wird.

Optionen

-s Signal
sendet das Signal anstelle von SIGTERM (15)
-p
gibt die Prozeßnummern der Prozesse aus, an die ein Signal gesendet würde, ohne es zu senden
-a
veranlaßt kill auch Prozesse anderer Benutzer einzubeziehen
-l
gibt eine Namensliste aller Signale aus; eine Signalnummer als Argument wird in den entsprechenden Signalnamen übersetzt