Kill: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
|||
Zeile 2: | Zeile 2: | ||
== Beschreibung == | == Beschreibung == | ||
Das Kommando dient der Steuerung bereits laufender Prozesse, indem es an diese Signale versendet | Das Kommando dient der Steuerung bereits laufender Prozesse, indem es an diese Signale versendet | ||
* Während einige Signale vordefinierte Bedeutungen besitzen, können andere von den Prozessen nach eigenen Vorstellungen behandelt werden | * Während einige Signale vordefinierte Bedeutungen besitzen, können andere von den Prozessen nach eigenen Vorstellungen behandelt werden | ||
* Das Versenden von Signalen soll auch im Zusammenhang mit Prozessen diskutiert werden | * Das Versenden von Signalen soll auch im Zusammenhang mit Prozessen diskutiert werden | ||
Das | Das Standardsignal für kill ist TERM. Mit -l oder -L können Sie die verfügbaren Signale auflisten. Im einzelnen sind HUP, INT, KILL, STOP, CONT und 0 nützliche Signale. Alternative Signale können auf drei Arten angegeben werden: -9, -SIGKILL oder -KILL. Negative Werte für die Prozesskennung können verwendet werden, um ganze Prozessgruppen auszuwählen; siehe die Spalte PGID der Ausgabe des Befehls ps. Eine Prozesskennung von -1 ist besonders. Sie bezeichnet alle Prozesse außer init und den kill-Prozess selbst | ||
== Prozesse beenden == | == Prozesse beenden == | ||
*Beendet außer Kontrolle geratene ("aufgehängte") Prozesse und sendet Signale an Prozesse | * Beendet außer Kontrolle geratene ("aufgehängte") Prozesse und sendet Signale an Prozesse | ||
*Das Signal kann mit Namen oder Nummer angegeben werden. Ist kein Signal angegeben, wird | * Das Signal kann mit Namen oder Nummer angegeben werden. Ist kein Signal angegeben, wird SIGTERM (15) gesendet | ||
*Der Prozess wird dann durch seine ''Prozessnummer'' (PID) oder seinen ''Namen'' angegeben | * Der Prozess wird dann durch seine ''Prozessnummer'' (PID) oder seinen ''Namen'' angegeben | ||
*Signale können ohne Root-Privilegien nur an die eigenen Prozesse gesendet werden | * Signale können ohne Root-Privilegien nur an die eigenen Prozesse gesendet werden | ||
*Prozesse reagieren unterschiedlich auf diese Signale:# Wenn das Anwendungsprogramm eine Funktion zur Behandlung eines Signals bereitstellt, kann dieses Signal abgefangen werden | * Prozesse reagieren unterschiedlich auf diese Signale:# Wenn das Anwendungsprogramm eine Funktion zur Behandlung eines Signals bereitstellt, kann dieses Signal abgefangen werden | ||
*Signale können damit zur asynchronen Fehler- bzw. Ausnahmebehandlung sowie zu einer primitiven Prozesskommunikation genutzt werden | * Signale können damit zur asynchronen Fehler- bzw. Ausnahmebehandlung sowie zu einer primitiven Prozesskommunikation genutzt werden | ||
*Das Signal kann ignoriert werden. Das ist der Regelfall für alle Signale, die nicht abgefangen werden | * Das Signal kann ignoriert werden. Das ist der Regelfall für alle Signale, die nicht abgefangen werden | ||
*Die Signale '''SIGKILL''' und '''SIGSTOP''' können nicht abgefangen werden, sie werden direkt vom Kernel behandelt. Mit '''SIGKILL (9)''' wird der Prozess sofort beendet | * Die Signale '''SIGKILL''' und '''SIGSTOP''' können nicht abgefangen werden, sie werden direkt vom Kernel behandelt. Mit '''SIGKILL (9)''' wird der Prozess sofort beendet | ||
== Installation == | == Installation == | ||
Zeile 32: | Zeile 32: | ||
! Unix !! GNU !! Parameter !! Beschreibung | ! Unix !! GNU !! Parameter !! Beschreibung | ||
|- | |- | ||
| - </br>-s || --signal || <Signal> || gibt das zu sendende Signal an. Es kann als Name oder Nummer angegeben werden. Das Verhalten der Signale ist in der Handbuchseite zu signal(7) beschrieben | | - </br>-s || --signal || <Signal> || gibt das zu sendende Signal an. Es kann als Name oder Nummer angegeben werden. Das Verhalten der Signale ist in der Handbuchseite zu signal(7) beschrieben | ||
|- | |- | ||
| -q || --queue || Wert || verwendet sigqueue(3) anstatt kill(2) und das Wert-Argument wird zur Angabe einer Ganzzahl verwendet, die mit dem Signal gesendet wird. Falls der empfangende Prozess mit dem SA_SIGINFO-Flag für sigaction(2) einen Handler für dieses Signal installiert hat, dann kann er diese Daten über das si_value-Feld der Struktur siginfo_t beziehen | | -q || --queue || Wert || verwendet sigqueue(3) anstatt kill(2) und das Wert-Argument wird zur Angabe einer Ganzzahl verwendet, die mit dem Signal gesendet wird. Falls der empfangende Prozess mit dem SA_SIGINFO-Flag für sigaction(2) einen Handler für dieses Signal installiert hat, dann kann er diese Daten über das si_value-Feld der Struktur siginfo_t beziehen | ||
Zeile 84: | Zeile 84: | ||
== Konfiguration == | == Konfiguration == | ||
=== Dateien === | === Dateien === | ||
{| class="wikitable options" | {| class="wikitable options" | ||
Zeile 90: | Zeile 89: | ||
! Datei !! Beschreibung | ! Datei !! Beschreibung | ||
|- | |- | ||
| || | | || | ||
|- | |- | ||
| || | | || | ||
|} | |} | ||
<noinclude> | <noinclude> | ||
Zeile 109: | Zeile 108: | ||
=== Dokumentation === | === Dokumentation === | ||
; Man-Page | |||
; Man-Page | |||
# [https://manpages.debian.org/testing/procps/pgrep.1.de.html prep(1)] | # [https://manpages.debian.org/testing/procps/pgrep.1.de.html prep(1)] | ||
; Info-Pages | ; Info-Pages | ||
=== Links === | === Links === | ||
==== Weblinks ==== | ==== Weblinks ==== | ||
{{DEFAULTSORT:kill}} | {{DEFAULTSORT:kill}} | ||
{{DISPLAYTITLE:kill}} | {{DISPLAYTITLE:kill}} |
Version vom 6. April 2025, 12:27 Uhr
kill - Signale an Prozesse senden
Beschreibung
Das Kommando dient der Steuerung bereits laufender Prozesse, indem es an diese Signale versendet
- Während einige Signale vordefinierte Bedeutungen besitzen, können andere von den Prozessen nach eigenen Vorstellungen behandelt werden
- Das Versenden von Signalen soll auch im Zusammenhang mit Prozessen diskutiert werden
Das Standardsignal für kill ist TERM. Mit -l oder -L können Sie die verfügbaren Signale auflisten. Im einzelnen sind HUP, INT, KILL, STOP, CONT und 0 nützliche Signale. Alternative Signale können auf drei Arten angegeben werden: -9, -SIGKILL oder -KILL. Negative Werte für die Prozesskennung können verwendet werden, um ganze Prozessgruppen auszuwählen; siehe die Spalte PGID der Ausgabe des Befehls ps. Eine Prozesskennung von -1 ist besonders. Sie bezeichnet alle Prozesse außer init und den kill-Prozess selbst
Prozesse beenden
- Beendet außer Kontrolle geratene ("aufgehängte") Prozesse und sendet Signale an Prozesse
- Das Signal kann mit Namen oder Nummer angegeben werden. Ist kein Signal angegeben, wird SIGTERM (15) gesendet
- Der Prozess wird dann durch seine Prozessnummer (PID) oder seinen Namen angegeben
- Signale können ohne Root-Privilegien nur an die eigenen Prozesse gesendet werden
- Prozesse reagieren unterschiedlich auf diese Signale:# Wenn das Anwendungsprogramm eine Funktion zur Behandlung eines Signals bereitstellt, kann dieses Signal abgefangen werden
- Signale können damit zur asynchronen Fehler- bzw. Ausnahmebehandlung sowie zu einer primitiven Prozesskommunikation genutzt werden
- Das Signal kann ignoriert werden. Das ist der Regelfall für alle Signale, die nicht abgefangen werden
- Die Signale SIGKILL und SIGSTOP können nicht abgefangen werden, sie werden direkt vom Kernel behandelt. Mit SIGKILL (9) wird der Prozess sofort beendet
Installation
kill ist Teil des Pakets procps
Aufruf
kill [Optionen] <Prozess-ID> […]
kill [-s Signal] [-p] [-a] [-l [Signalnummer]] <Prozess-ID> […]
Optionen
Unix | GNU | Parameter | Beschreibung |
---|---|---|---|
- -s |
--signal | <Signal> | gibt das zu sendende Signal an. Es kann als Name oder Nummer angegeben werden. Das Verhalten der Signale ist in der Handbuchseite zu signal(7) beschrieben |
-q | --queue | Wert | verwendet sigqueue(3) anstatt kill(2) und das Wert-Argument wird zur Angabe einer Ganzzahl verwendet, die mit dem Signal gesendet wird. Falls der empfangende Prozess mit dem SA_SIGINFO-Flag für sigaction(2) einen Handler für dieses Signal installiert hat, dann kann er diese Daten über das si_value-Feld der Struktur siginfo_t beziehen |
-l | --list | [Signal] | listet Signalnamen auf. Diese Option kann ein Argument haben, welches die Signalnummer in einen Signalnamen umwandelt oder umgekehrt |
-L | --table | listet Signalnamen in einer übersichtlichen Tabelle auf |
Parameter
Parameter | Beschreibung |
---|---|
<Prozess-ID> […] | sendet das Signal an alle aufgelisteten <Prozesskennungen> |
Implementierung
Viele Shells besitzen einen eingebauten Kill-Befehl
type kill
kill ist eine von der Shell mitgelieferte Funktion
- Direkter Aufruf
/bin/kill direkt aufrufen, um den Konflikt zu umgehen
/bin/kill
Anwendung
- killt alle Prozesse, die gekillt werden können
kill -9 -1
- übersetzt die Zahl 11 in einen Signalnamen
kill -l 11
- listet die Auswahl der verfügbaren Signale in einer übersichtlichen Tabelle auf
kill -L
Sendet das Standardsignal SIGTERM an alle diese Prozesse
kill 123 543 2341 3453
Konfiguration
Dateien
Datei | Beschreibung |
---|---|
Anhang
Siehe auch
- kill(2)
- killall(1)
- nice(1)
- pkill(1)
- renice(1)
- signal(7)
- sigqueue(3)
- skill(1)
Dokumentation
- Man-Page
- Info-Pages
Links
Weblinks