'\" t .\" Title: kill .\" Author: [see the "AUTHOR(S)" section] .\" Generator: Asciidoctor 2.0.23 .\" Date: 2025-06-24 .\" Manual: Dienstprogramme für Benutzer .\" Source: util-linux 2.41.1 .\" Language: English .\" .TH "KILL" "1" "2025-06-24" "util\-linux 2.41.1" "Dienstprogramme für Benutzer" .ie \n(.g .ds Aq \(aq .el .ds Aq ' .ss \n[.ss] 0 .nh .ad l .de URL \fI\\$2\fP <\\$1>\\$3 .. .als MTO URL .if \n[.g] \{\ . mso www.tmac . am URL . ad l . . . am MTO . ad l . . . LINKSTYLE blue R < > .\} .SH "BEZEICHNUNG" kill \- einen Prozess beenden .SH "ÜBERSICHT" .sp \fBkill\fP [\fB\-\fP \fIsignal\fP|\fB\-s\fP \fISignal\fP|\fB\-p\fP] [\fB\-q\fP \fIWert\fP] [\fB\-a\fP] [\fB\-\-timeout\fP \fIMillisekunden\fP \fISignal\fP] [\fB\-\-\fP] \fIProzesskennung\fP|\fIName\fP … .sp \fBkill\fP \fB\-l\fP [\fINummer\fP|\f(CR0x\fP\fISignalmaske\fP] | \fB\-L\fP .sp \fBkill\fP \fB\-d\fP \fIPID\fP .SH "BESCHREIBUNG" .sp Der Befehl \fBkill\fP sendet das angegebene \fISignal\fP an die angegebenen Prozesse oder Prozessgruppen. .sp Falls kein Signal angegeben ist, wird das \fBTERM\fP\-Signal gesendet. Die vorgegebene Aktion für dieses Signal ist es, den Prozess zu beenden. Dieses Signal sollte dem \fBKILL\fP\-Signal vorgezogen werden (Nummer 9), da ein Prozess einen Mechanismus für das \fBTERM\fP\-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 \fBTERM\fP\-Signal gesendet wurde, dann kann das \fBKILL\fP\-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. .sp Die meisten modernen Shells haben einen eingebauten \fBkill\fP\-Befehl, der recht ähnlich zu dem hier beschriebenen Befehl verwendet wird. Die Optionen \fB\-\-all\fP, \fB\-\-pid\fP und \fB\-\-queue\fP sowie die Möglichkeit, Prozesse anhand deren Befehlsnamen anzugeben, sind lokale Erweiterungen. .sp Falls das \fISignal\fP 0 ist, dann wird kein eigentliches Signal gesendet, aber die Überprüfung auf Fehler wird dennoch ausgeführt. .SH "ARGUMENTE" .sp Die Liste der Prozesse, an die Signale gesendet werden sollen, kann eine Mischung aus Namen und Prozesskennungen (PIDs) sein. .sp \fIProzesskennung\fP .RS 4 Jede \fIProzesskennung\fP kann eine aus den folgenden vier sein: .sp \fIn\fP .RS 4 Hier muss \fIn\fP größer als 0 sein. Das Signal wird an den Prozess mit der Kennung \fIn\fP gesendet. .RE .sp \fB0\fP .RS 4 Das Signal wird an alle Prozesse der aktuellen Prozessgruppe gesendet. .RE .sp \fB\-1\fP .RS 4 Das Signal wird an alle Prozesse mit einer Kennung größer als 1 gesendet. .RE .sp \fB\-\fP\fIn\fP .RS 4 Hier muss \fIn\fP größer als 0 sein. Das Signal wird an alle Prozesse in der Prozessgruppe \fIn\fP gesendet. Wenn ein Argument der Form \fB\-n\fP angegeben ist und dieses eine Prozessgruppe bezeichnen soll, muss entweder zuvor ein Signal angegeben oder dem Argument ein \fB\-\-\fP vorangestellt werden, sonst wird das Argument als zu sendendes Signal aufgefasst. .RE .RE .sp \fIName\fP .RS 4 Das Signal wird an alle Prozesse gesendet, die diesen \fINamen\fP verwenden. .RE .SH "OPTIONEN" .sp \fB\-s\fP, \fB\-\-signal\fP \fISignal\fP .RS 4 gibt das zu sendende Signal an. Es kann als Name oder Nummer angegeben werden. .RE .sp \fB\-l\fP, \fB\-\-list\fP [\fINummer\fP|\f(CR0x\fP\fISignalmaske\fP] .RS 4 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 \fI/usr/include/linux/signal.h\fP. .sp .if n .RS 4 .nf .fam C $ 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 .fam .fi .if n .RE .RE .sp \fB\-L\fP, \fB\-\-table\fP .RS 4 ist ähnlich zu \fB\-l\fP, gibt aber die Signalnamen und deren zugehörige Nummern aus. .RE .sp \fB\-a\fP, \fB\-\-all\fP .RS 4 beschränkt die Umwandlung von Befehlsnamen in Prozesskennungen nicht auf Prozesse mit der gleichen Benutzerkennung wie der aktuelle Prozess. .RE .sp \fB\-p\fP, \fB\-\-pid\fP .RS 4 gibt nur die Prozesskennung (PID) der benannten Prozesse aus, aber sendet keinerlei Signale. .RE .sp \fB\-r\fP, \fB\-\-require\-handler\fP .RS 4 sendet das Signal nicht, wenn es nicht auf Anwendungsebene von dem Prozess empfangen wird, für den es bestimmt ist. .RE .sp \fB\-\-verbose\fP .RS 4 gibt zusammen mit dem Signal die Kennung(en) der Prozesse aus, an die das Signal mit \fBkill\fP gesendet werden soll. .RE .sp \fB\-q\fP, \fB\-\-queue\fP \fIWert\fP .RS 4 sendet das Signal mittels \fBsigqueue\fP(3) anstelle von \fBkill\fP(2). Das Argument \fIWert\fP ist eine Ganzzahl, die zusammen mit dem Signal gesendet wird. Wenn der empfangende Prozess mittels des \fBSA_SIGINFO\fP\-Schalters von \fBsigaction\fP(2) einen Mechanismus installiert hat, dann kann er diese Daten über das \fIsi_sigval\fP\-Feld der \fIsiginfo_t\fP\-Struktur beziehen. .RE .sp \fB\-\-timeout\fP \fIMillisekunden Signal\fP .RS 4 sendet ein Signal, das in der üblichen Weise definiert ist, an einen Prozess, gefolgt nach einer bestimmten Verzögerung von einem weiteren Signal. Die Option \fB\-\-timeout\fP veranlasst \fBkill\fP, eine in Millisekunden festgelegte Zeitspanne zu warten, bevor ein Folge\-\fISignal\fP 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. .sp Beachten Sie, dass das Betriebssystem PIDs wiederverwenden kann und eine entsprechende Funktion in einer Shell, die \fBkill\fP und \fBsleep\fP verwendet, Probleme verursachen könnte, indem ein Folgesignal an einen anderen Prozess mit einer solchen wiederverwendeten PID gesendet wird. .sp Die Option \fB\-\-timeout\fP kann mehrfach angegeben werden: Die Signale werden nacheinander in den angegebenen Zeitabständen gesendet. Die Option \fB\-\-timeout\fP kann mit der Option \fB\-\-queue\fP kombiniert werden. .sp Als Beispiel sendet der folgende Befehl die Signale \fBQUIT\fP, \fBTERM\fP und \fBKILL\fP nacheinander und wartet zwischen den Signalen 1000 Millisekunden: .sp .if n .RS 4 .nf .fam C kill \-\-verbose \-\-timeout 1000 TERM \-\-timeout 1000 KILL \(rs \-\-signal QUIT 12345 .fam .fi .if n .RE .RE .sp \fB\-d\fP, \fB\-\-show\-process\-state\fP \fIPID\fP .RS 4 dekodiert signalbezogene Felder in /proc/\fIPID\fP/status. .sp .if n .RS 4 .nf .fam C $ kill \-d $$ Blocked: INT Ignored: TERM TSTP TTIN TTOU Caught: HUP INT PIPE ALRM CHLD WINCH .fam .fi .if n .RE .RE .SH "EXIT\-STATUS" .sp \fBkill\fP gibt die folgenden Rückgabewerte aus: .sp \fB0\fP .RS 4 Erfolg .RE .sp \fB1\fP .RS 4 Fehlschlag .RE .sp \fB64\fP .RS 4 Teilerfolg (wenn mehr als ein Prozess angegeben wurde) .RE .SH "ANMERKUNGEN" .sp Obwohl es möglich ist, die Threadkennung (TID; siehe \fBgettid\fP(2)) eines der Threads in einem Multithread\-Prozess als Argument von \fBkill\fP 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 \fBsignal\fP(7) und der Beschreibung von \fBCLONE_THREAD\fP in \fBclone\fP(2). .sp Verschiedene Shells stellen eine interne Implementierung von \fBkill\fP bereit, die bezüglich des in diesem Handbuch beschriebenen \fBkill\fP(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 \fB/bin/kill \-\-version\fP. .SH "AUTOREN" .sp .MTO "svalente\(atmit.edu" "Salvatore Valente" "," .MTO "kzak\(atredhat.com" "Karel Zak" "" .sp Die ursprüngliche Version wurde aus BSD 4.4 übernommen. .SH "SIEHE AUCH" .sp \fBbash\fP(1), \fBtcsh\fP(1), \fBsigaction\fP(2), \fBkill\fP(2), \fBsigqueue\fP(3), \fBsignal\fP(7) \fBproc(5)\fP \fBproc_pid_status(5)\fP .SH "FEHLER MELDEN" .sp Nutzen Sie zum Melden von Fehlern das \c .URL "https://github.com/util\-linux/util\-linux/issues" "Fehlererfassungssystem" "." .SH "VERFÜGBARKEIT" .sp Der Befehl \fBkill\fP ist Teil des Pakets util\-linux, welches aus dem \c .URL "https://www.kernel.org/pub/linux/utils/util\-linux/" "Linux\-Kernel\-Archiv" "" heruntergeladen werden kann.