Arch manual pages

KILL(1) Dienstprogramme für Benutzer KILL(1)

kill - einen Prozess beenden

kill [-Signal|-s Signal|-p] [-q Wert] [-a] [--] Prozesskennung|Name
kill -l [Zahl] | -L

Der Befehl kill sendet das angegebene Signal an die angegebenen Prozesse oder Prozessgruppen.

Falls kein Signal angegeben ist, wird das TERM-Signal gesendet. Die vorgegebene Aktion für dieses Signal ist es, den Prozess zu beenden. Dieses Signal sollte dem KILL-Signal vorgezogen werden (Nummer 9), da ein Prozess einen Mechanismus für das TERM-Signal installieren könnte, der vor dem Beenden Aufräumschritte ausführt, um sich auf ordentliche Art und Weise zu beenden. Wenn sich ein Prozess nicht beendet, nachdem das TERM-Signal gesendet wurde, dann kann das KILL-Signal verwendet werden; beachten Sie jedoch, dass Letzteres nicht abgefangen werden kann und der Zielprozess daher keine Möglichkeit hat, vor dem Beenden irgendwelche Aufräumarbeiten durchzuführen.

In den meisten modernen Shells ist bereits ein Kill-Befehl eingebaut, der ähnlich zu dem hier beschriebenen Befehl aufgerufen wird. Die Optionen --all, --pid und --queue sowie die Möglichkeit zur Angabe des Prozesses per Befehlsname sind lokale Erweiterungen.

Falls das Signal 0 ist, dann wird kein eigentliches Signal gesendet, aber die Überprüfung auf Fehler wird dennoch ausgeführt.

Die Liste der Prozesse, an die Signale gesendet werden sollen, kann eine Mischung aus Namen und Prozesskennungen (PIDs) sein.
Prozesskennung
Jede Prozesskennung kann eine aus den folgenden vier sein:
n
Hier muss n größer als 0 sein. Das Signal wird an den Prozess mit der Kennung n gesendet.
0
Das Signal wird an alle Prozesse der aktuellen Prozessgruppe gesendet.
-1
Das Signal wird an alle Prozesse mit einer Kennung größer als 1 gesendet.
-n
Hier muss n größer als 0 sein. Das Signal wird an alle Prozesse in der Prozessgruppe n gesendet. Wenn ein Argument der Form -n angegeben ist und dieses eine Prozessgruppe bezeichnen soll, muss entweder zuvor ein Signal angegeben oder dem Argument ein -- vorangestellt werden, sonst wird das Argument als zu sendendes Signal aufgefasst.
name
Das Signal wird an alle Prozesse gesendet, die diesen Namen verwenden.

-s, --signal Signal
gibt das zu sendende Signal an. Es kann als Name oder Nummer angegeben werden.
-l, --list [Zahl]
gibt eine Liste der Signalnamen aus oder wandelt die angegebene Signalnummer in einen Namen um. Die Signale finden Sie in /usr/include/linux/signal.h.
-L, --table
ist ähnlich zu -l, gibt aber die Signalnamen und deren zugehörige Nummern aus.
-a, --all
beschränkt die Umwandlung von Befehlsnamen in Prozesskennungen nicht auf Prozesse mit der gleichen Benutzerkennung wie der aktuelle Prozess.
-p, --pid
gibt nur die Prozesskennung (PID) der benannten Prozesse aus, aber sendet keinerlei Signale.
--verbose
gibt zusammen mit dem Signal die Kennung(en) der Prozesse aus, an die das Signal mit kill gesendet werden soll.
-q, --queue Wert
verwendet sigqueue(3) anstelle von kill(2). Das Argument Wert ist eine Ganzzahl, die zusammen mit dem Signal gesendet wird. Wenn der empfangende Prozess mittels des SA_SIGINFO-Schalters von sigaction(2) einen Mechanismus installiert hat, dann kann er diese Daten über das si_sigval-Feld der siginfo_t-Struktur beziehen.

Obwohl es möglich ist, die Threadkennung (TID; siehe gettid(2)) eines der Threads in einem Multithread-Prozess als Argument von kill anzugeben, wird das Signal trotzdem an den Prozess gesendet (d.h. die gesamte Prozessgruppe). Anders ausgedrückt, es gibt keine Möglichkeit, ein Signal an einen explizit ausgewählten Thread in einem Multithread-Prozess zu senden. Das Signal wird an einen willkürlich ausgewählten Thread im Zielprozess gesendet, der das Signal nicht blockiert. Weitere Details finden Sie in signal(7) und der Beschreibung von CLONE_THREAD in clone(2).

kill gibt die folgenden Rückgabewerte aus:
0
Erfolg
1
Fehlschlag
64
Teilerfolg (wenn mehr als ein Prozess angegeben wurde)

bash(1), tcsh(1), sigaction(2), kill(2), sigqueue(3), signal(7)

Salvatore Valente
Karel Zak

Die ursprüngliche Version wurde aus BSD 4.4 übernommen.

Der Befehl kill ist Teil des Pakets util-linux, welches aus dem Linux Kernel-Archiv heruntergeladen werden kann.

Die deutsche Übersetzung dieser Handbuchseite wurde von Mario Blättermann <mario.blaettermann@gmail.com> erstellt.

Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.

Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an <debian-l10n-german@lists.debian.org>.

Juli 2014 util-linux