KILL(1) Dienstprogramme fur Benutzer KILL(1) BEZEICHNUNG kill - einen Prozess beenden UBERSICHT kill [- signal|-s Signal|-p] [-q Wert] [-a] [--timeout Millisekunden Signal] [--] Prozesskennung|Name kill -l [Nummer|0xSignalmaske] | -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 fur dieses Signal ist es, den Prozess zu beenden. Dieses Signal sollte dem KILL-Signal vorgezogen werden (Nummer 9), da ein Prozess einen Mechanismus fur das TERM-Signal installieren konnte, der vor dem Beenden Aufraumschritte ausfuhrt, 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 Moglichkeit hat, vor dem Beenden irgendwelche Aufraumarbeiten durchzufuhren. Die meisten modernen Shells haben einen eingebauten kill-Befehl, der recht ahnlich zu dem hier beschriebenen Befehl verwendet wird. Die Optionen --all, --pid und --queue sowie die Moglichkeit, Prozesse anhand deren Befehlsnamen anzugeben, sind lokale Erweiterungen. Falls das Signal 0 ist, dann wird kein eigentliches Signal gesendet, aber die Uberprufung auf Fehler wird dennoch ausgefuhrt. ARGUMENTE 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 grosser 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 grosser als 1 gesendet. -n Hier muss n grosser 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. OPTIONEN -s, --signal Signal gibt das zu sendende Signal an. Es kann als Name oder Nummer angegeben werden. -l, --list [Nummer|0xSignalmaske] gibt eine Liste der Signalnamen aus, wandelt die angegebene Signalnummer in einen Namen oder die angegebene Signalmaske in Namen um. Die Signale finden Sie in /usr/include/linux/signal.h. $ 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 ist ahnlich zu -l, gibt aber die Signalnamen und deren zugehorige Nummern aus. -a, --all beschrankt 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. -r, --require-handler sendet das Signal nicht, wenn es nicht auf Anwendungsebene von dem Prozess empfangen wird, fur den es bestimmt ist. --verbose gibt zusammen mit dem Signal die Kennung(en) der Prozesse aus, an die das Signal mit kill gesendet werden soll. -q, --queue Wert sendet das Signal mittels 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 uber das si_sigval-Feld der siginfo_t-Struktur beziehen. --timeout Millisekunden Signal sendet ein Signal, das in der ublichen Weise definiert ist, an einen Prozess, gefolgt nach einer bestimmten Verzogerung von einem weiteren Signal. Die Option --timeout veranlasst kill, eine in Millisekunden festgelegte Zeitspanne zu warten, bevor ein Folge-Signal an den Prozess gesendet wird. Diese Funktion ist unter Verwendung der PID-Dateideskriptor-Funktion des Kernels implementiert, um zu garantieren, dass das Folgesignal an den gleichen Prozess gesendet wird, oder nicht gesendet wird, falls der Prozess nicht mehr existiert. Beachten Sie, dass das Betriebssystem PIDs wiederverwenden kann und eine entsprechende Funktion in einer Shell, die kill und sleep verwendet, Probleme verursachen konnte, 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 Zeitabstanden 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 dekodiert signalbezogene Felder in /proc/PID/status. $ kill -d $$ Blocked: INT Ignored: TERM TSTP TTIN TTOU Caught: HUP INT PIPE ALRM CHLD WINCH EXIT-STATUS kill gibt die folgenden Ruckgabewerte aus: 0 Erfolg 1 Fehlschlag 64 Teilerfolg (wenn mehr als ein Prozess angegeben wurde) ANMERKUNGEN Obwohl es moglich 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 ausgedruckt, es gibt keine Moglichkeit, ein Signal an einen explizit ausgewahlten Thread in einem Multithread-Prozess zu senden. Das Signal wird an einen willkurlich ausgewahlten 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 bezuglich des in diesem Handbuch beschriebenen kill(1)-Programms den Vorrang hat. Der einfachste Weg um sicherzustellen, dass das in dieser Handbuchseite beschriebene ausfuhrbare Programm verwendet wird, ist die Angabe des vollstandigen Pfades beim Aufruf des Befehls, zum Beispiel /bin/kill --version. AUTOREN Salvatore Valente , Karel Zak Die ursprungliche Version wurde aus BSD 4.4 ubernommen. SIEHE AUCH bash(1), tcsh(1), sigaction(2), kill(2), sigqueue(3), signal(7) proc(5) proc_pid_status(5) FEHLER MELDEN Nutzen Sie zum Melden von Fehlern das Fehlererfassungssystem . VERFUGBARKEIT Der Befehl kill ist Teil des Pakets util-linux, welches aus dem Linux-Kernel-Archiv heruntergeladen werden kann. util-linux 2.41.1 2025-06-24 KILL(1)