(terminate or signal processes)
Das Kommando kill sendet ein Signal an eine durch die Prozessnummer (PID) bestimmte Menge von Prozessen. Um die Prozessnummer des Prozesses zu erfahren, an den Sie ein Signal senden wollen, verwenden Sie das Kommando ps.
Syntax
Format 1: | kill[ -signal] prozessnummer ... |
Format 2: | kill -s signal prozessnummer ... |
Format 3: | kill -signal -gruppennummer ... |
Format 4: | kill -l [exit-status] |
Signale an Prozesse senden
Signal, das an die Prozesse gesendet werden soll. Sie können dieses Signal in Form einer Zahl oder als symbolischen Namen angeben. Ein symbolischer Name ist die Bezeichnung eines Signals entsprechend der Definition in der Include-Datei <sys/signal.h>; das Präfix SIG wird allerdings nicht angegeben. Die Liste dieser Namen können Sie sich mit der Option -l ausgeben lassen. Alle in der Include-Datei <sys/signal.h> definierten Signale können angegeben werden. Die Signale mit folgenden Nummern und symbolischen Namen sind auf Kommando-Ebene von Bedeutung: 1 - SIGHUP: Verbindung zu Datensichtstation unterbrechen (hangup) 2 - SIGINT: unterbrechen durch CTRL+C (interrupt) 3 - SIGQUIT: abbrechen (quit) 9 - SIGKILL: unbedingter Prozessabbruch (kill) 15 - SIGTERM: Programmbeendigung (software termination) Zusätzlich wird der symbolische Name 0 erkannt, der den Signalwert Null darstellt. signal nicht angegeben:
Nummer des Prozesses, an den Sie ein Signal senden wollen. Benutzer können nur an eigene Prozesse Signale senden. Der POSIX-Verwalter kann Signale an alle Prozesse senden. Die aktuellen Prozessnummern gibt das Kommando ps aus. 0 als Prozessnummer bedeutet: Das angegebene Signal wird an alle Prozesse aus Ihrer Prozessgruppe gesendet. Signale an Prozesse senden
Signal, das an die Prozesse gesendet werden soll. Sie können dieses Signal in Form einer Zahl oder als symbolischen Namen angeben. Ein symbolischer Name ist die Bezeichnung eines Signals entsprechend der Definition in der Include-Datei <sys/signal.h>; das Präfix SIG wird allerdings nicht angegeben. Die Liste dieser Namen können Sie sich mit der Option -l ausgeben lassen. Signale an Prozessgruppen senden
Signal, das an die Prozesse einer Prozessgruppe gesendet werden soll. Sie können dieses Signal in Form einer Zahl oder als symbolischen Namen angeben. Ein symbolischer Name ist die Bezeichnung eines Signals entsprechend der Definition in der Include-Datei <sys/signal.h>; das Präfix SIG wird allerdings nicht angegeben. Die Liste dieser Namen können Sie sich mit der Option -l ausgeben lassen.
kill sendet das Signal an alle Prozesse der Prozessgruppe gruppennummer. Benutzer können nur an eigene Prozessgruppen Signale senden. Der POSIX-Verwalter kann Signale an alle Prozessgruppen senden. Wenn Sie für gruppennummer die Zahl 1 angeben, so wird signal an alle Prozesse gesendet, deren realer User gleich dem effektiven User des kill-Kommandos ist. Als privilegierter Benutzer senden Sie das Signal an alle Prozesse, mit Ausnahme bestimmter Systemprozesse. Symbolische Signalnamen auflisten
kill listet die symbolischen Signalnamen auf.
Signalnummer oder Endestatus des Prozesses, der durch ein Signal beendet wird. |
Fehler
Sie haben für prozessnummer einen ungültigen Wert angegeben.
Sie haben für gruppennummer einen ungültigen Wert angegeben. |
Datei
<sys/signal.h> Include-Datei, in der die symbolischen Namen der Signale definiert sind. |
Internationale Umgebung
Die folgenden Umgebungsvariablen beeinflussen die Ausführung des Kommandos kill: LANG Gibt einen Standardwert für die Variablen für die internationale Umgebung an, die nicht gesetzt oder Null sind. Ist LANG nicht gesetzt oder Null, wird der entsprechende Standardwert der internationalen Umgebung verwendet. Enthält eine der Internationalisierungsvariablen eine ungültige Einstellung, verhält sich das Kommando so, als sei keine der Variablen definiert worden. LC_ALL Ist diese Variable auf einen Wert gesetzt, d. h. ist sie nicht leer, überschreibt dieser Wert die Werte aller übrigen Internationalisierungsvariablen. LC_CTYPE Legt die internationale Umgebung für die Interpretation der Byte-Folgen eines Datentexts als Zeichen fest (z.B. Singlebytezeichen im Unterschied zu Mehrbytezeichen in Argumenten und Eingabedateien) sowie die Einteilung der Zeichen in Groß- und Kleinbuchstaben und deren Übereinstimmung. LC_MESSAGES Legt die internationale Umgebung für Format und Inhalt der Diagnosemeldungen fest, die in die Standardfehlerausgabe geschrieben werden. NLSPATH Legt den Pfad der Meldungsdateien für LC_MESSAGES fest. |
Beispiel 1
Der Prozess mit der Nummer 312 wird durch das Signal SIGKILL (9) beendet:
|
Beispiel 2
Das folgende Beispiel gibt den Status eines beendeten Auftrags aus: job stat=$? if [ $stat -eq 0 ] then echo job completed successfully. elif [ $stat -gt 128 ] then echo job terminated by signal SIG$(kill -l $stat). else echo job terminated with error code $stat. fi Um zu vermeiden, dass bei einem Anfangsargument mit einer negativen Zahl entweder eine Signalnummer oder eine Prozessgruppe angegeben werden kann und dadurch Zweideutigkeiten entstehen, schreibt ISO POSIX-2 DIS vor, dass immer ersteres angenommen wird. Wenn also das Standardsignal an eine Prozessgruppe gesendet werden soll (z.B. 123), muss eine Anwendung ein Kommando ähnlich dem folgenden verwenden:
|
Siehe auch
ps, trap kill(), signal() [4] |