KILL(1) | Dienstprogramme für Benutzer | KILL(1) |
BEZEICHNUNG
kill - einen Prozess beenden
ÜBERSICHT
kill [- signal|-s Signal|-p] [-q Wert] [-a] [--timeout Millisekunden Signal] [--] Prozesskennung|Name …
kill -l [number|0xsigmask] | -L
kill -d pid
BESCHREIBUNG
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.
Die meisten modernen Shells haben einen eingebauten kill-Befehl, der recht ähnlich zu dem hier beschriebenen Befehl verwendet wird. Die Optionen --all, --pid und --queue sowie die Möglichkeit, Prozesse anhand deren Befehlsnamen anzugeben, sind lokale Erweiterungen.
Falls das Signal 0 ist, dann wird kein eigentliches Signal gesendet, aber die Überprüfung auf Fehler wird dennoch ausgeführt.
ARGUMENTE
Die Liste der Prozesse, an die Signale gesendet werden sollen, kann eine Mischung aus Namen und Prozesskennungen (PIDs) sein.
Prozesskennung
n
0
-1
-n
Name
OPTIONEN
-s, --signal Signal
-l, --list [number|0xsigmask]
$ ps s $$ UID PID PENDING BLOCKED IGNORED CAUGHT STAT TTY TIME COMMAND 1000 1608069 0000000000000000 0000000000000002 0000000000384000 0000000008013003 Ss pts/44 0:02 zsh $ kill -l 0x0000000000384000 TERM TSTP TTIN TTOU
-L, --table
-a, --all
-p, --pid
-r, --require-handler
--verbose
-q, --queue Wert
--timeout Millisekunden Signal
Beachten Sie, dass das Betriebssystem PIDs wiederverwenden kann und eine entsprechende Funktion in einer Shell, die kill und sleep verwendet, Probleme verursachen könnte, indem ein Folgesignal an einen anderen Prozess mit einer solchen wiederverwendeten PID gesendet wird.
Die Option --timeout kann mehrfach angegeben werden: Die Signale werden nacheinander in den angegebenen Zeitabständen gesendet. Die Option --timeout kann mit der Option --queue kombiniert werden.
Als Beispiel sendet der folgende Befehl die Signale QUIT, TERM und KILL nacheinander und wartet zwischen den Signalen 1000 Millisekunden:
kill --verbose --timeout 1000 TERM --timeout 1000 KILL \ --signal QUIT 12345
-d, --show-process-state pid
$ kill -d $$ Blocked: INT Ignored: TERM TSTP TTIN TTOU Caught: HUP INT PIPE ALRM CHLD WINCH
EXIT-STATUS
kill gibt die folgenden Rückgabewerte aus:
0
1
64
ANMERKUNGEN
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).
Verschiedene Shells stellen eine interne Implementierung von kill bereit, die bezüglich des in diesem Handbuch beschriebenen kill(1)-Programms den Vorrang hat. Der einfachste Weg um sicherzustellen, dass das in dieser Handbuchseite beschriebene ausführbare Programm verwendet wird, ist die Angabe des vollständigen Pfades beim Aufruf des Befehls, zum Beispiel /bin/kill --version.
AUTOREN
Salvatore Valente <svalente@mit.edu>, Karel Zak <kzak@redhat.com>
Die ursprüngliche Version wurde aus BSD 4.4 übernommen.
SIEHE AUCH
bash(1), tcsh(1), sigaction(2), kill(2), sigqueue(3), signal(7) proc(5) proc_pid_status(5)
FEHLER MELDEN
For bug reports, use the issue tracker https://github.com/util-linux/util-linux/issues.
VERFÜGBARKEIT
Der Befehl kill ist Teil des Pakets util-linux, welches aus dem Linux-Kernel-Archiv https://www.kernel.org/pub/linux/utils/util-linux/ heruntergeladen werden kann.
2025-03-29 | util-linux 2.41 |