Kill: Unterschied zwischen den Versionen
Erscheinungsbild
(45 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 2: | Zeile 2: | ||
== Beschreibung == | == Beschreibung == | ||
; Steuerung laufender Prozesse | |||
* Signale senden | |||
== Bedeutungen von Signalen == | |||
; Vordefinierte Bedeutungen | |||
Während einige Signale vordefinierte Bedeutungen besitzen, können andere von den Prozessen nach eigenen Vorstellungen behandelt werden | |||
; Standardsignal | |||
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 == | == Installation == | ||
Zeile 17: | Zeile 45: | ||
! Unix !! GNU !! Parameter !! Beschreibung | ! Unix !! GNU !! Parameter !! Beschreibung | ||
|- | |- | ||
| - </br>-s || --signal || <Signal> || gibt das zu sendende Signal an | | - </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 | | -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 | | -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 | | -L || --table || || listet Signalnamen in einer übersichtlichen Tabelle auf | ||
Zeile 34: | Zeile 66: | ||
|} | |} | ||
=== | === Implementierung === | ||
; [[Buils-In]] | |||
[[Linux/Shell]]s besitzen oft einen eingebauten Kill-Befehl | |||
<syntaxhighlight lang="bash" highlight="1" line> | |||
type kill | |||
kill ist eine von der Shell mitgelieferte Funktion | |||
</syntaxhighlight> | |||
== | ; Direkter Aufruf | ||
Konflikt umgehen | |||
<syntaxhighlight lang="bash" highlight="1" line> | |||
/bin/kill | |||
</syntaxhighlight> | |||
== Anwendung == | == Anwendung == | ||
=== Alle Prozesse beenden === | |||
; killt alle Prozesse, die gekillt werden können | |||
<syntaxhighlight lang="bash" highlight="1" line> | <syntaxhighlight lang="bash" highlight="1" line> | ||
kill -9 -1 | |||
</syntaxhighlight> | </syntaxhighlight> | ||
=== | === Signalnummer übersetzen === | ||
übersetzt die Zahl 11 in einen Signalnamen | |||
<syntaxhighlight lang="bash" highlight="1" line> | |||
kill -l 11 | |||
</syntaxhighlight> | |||
=== Verfügbare Signale === | |||
; listet die Auswahl der verfügbaren Signale in einer übersichtlichen Tabelle auf | |||
<syntaxhighlight lang="bash" highlight="1" line> | |||
kill -L | |||
</syntaxhighlight> | |||
== | === SIGTERM an Prozesse senden === | ||
; Sendet das Standardsignal SIGTERM an alle diese Prozesse | |||
<syntaxhighlight lang="bash" highlight="1" line> | |||
kill 123 543 2341 3453 | |||
</syntaxhighlight> | |||
<noinclude> | <noinclude> | ||
Zeile 60: | Zeile 110: | ||
=== Siehe auch === | === Siehe auch === | ||
{{Special:PrefixIndex/{{BASEPAGENAME}}/}} | {{Special:PrefixIndex/{{BASEPAGENAME}}/}} | ||
{| class="wikitable sortable options col2center" | |||
|- | |||
! Kommando !! Section !! Beschreibung !! MAN-Page | |||
|- | |||
| [[kill]] || 2 || || | |||
|- | |||
| [[killall]] || 1 || || | |||
|- | |||
| [[nice]] || 1 || || | |||
|- | |||
| [[pkill]] || 1 || || | |||
|- | |||
| [[renice]] || 1 || || | |||
|- | |||
| [[signal]] || 7 || || | |||
|- | |||
| [[sigqueue]] || 3 || || | |||
|- | |||
| [[skill]] || 1 || || | |||
|- | |||
| [[prep]] || 1 || || [https://manpages.debian.org/testing/procps/pgrep.1.de.html prep(1)] | |||
|} | |||
=== Dokumentation === | === Dokumentation === | ||
; Man-Page | |||
; Info-Pages | |||
; Info-Pages | |||
=== Links === | === Links === | ||
==== Weblinks ==== | ==== Weblinks ==== | ||
{{DEFAULTSORT:kill}} | {{DEFAULTSORT:kill}} | ||
{{DISPLAYTITLE:kill}} | {{DISPLAYTITLE:kill}} | ||
[[Kategorie:Linux/Befehl]] | |||
[[Kategorie:Bash/Builtin]] | [[Kategorie:Bash/Builtin]] | ||
[[Kategorie:Linux/Prozess/Befehl]] | [[Kategorie:Linux/Prozess/Befehl]] | ||
[[Kategorie:Procps]] | [[Kategorie:Procps]] | ||
</noinclude> | </noinclude> | ||
Aktuelle Version vom 6. April 2025, 13:00 Uhr
kill - Signale an Prozesse senden
Beschreibung
- Steuerung laufender Prozesse
- Signale senden
Bedeutungen von Signalen
- Vordefinierte Bedeutungen
Während einige Signale vordefinierte Bedeutungen besitzen, können andere von den Prozessen nach eigenen Vorstellungen behandelt werden
- Standardsignal
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
|
-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
|
-l | --list | [Signal] | listet Signalnamen auf
|
-L | --table | listet Signalnamen in einer übersichtlichen Tabelle auf |
Parameter
Parameter | Beschreibung |
---|---|
<Prozess-ID> […] | sendet das Signal an alle aufgelisteten <Prozesskennungen> |
Implementierung
Linux/Shells besitzen oft einen eingebauten Kill-Befehl
type kill
kill ist eine von der Shell mitgelieferte Funktion
- Direkter Aufruf
Konflikt umgehen
/bin/kill
Anwendung
Alle Prozesse beenden
- killt alle Prozesse, die gekillt werden können
kill -9 -1
Signalnummer übersetzen
übersetzt die Zahl 11 in einen Signalnamen
kill -l 11
Verfügbare Signale
- listet die Auswahl der verfügbaren Signale in einer übersichtlichen Tabelle auf
kill -L
SIGTERM an Prozesse senden
- Sendet das Standardsignal SIGTERM an alle diese Prozesse
kill 123 543 2341 3453
Anhang
Siehe auch
Kommando | Section | Beschreibung | MAN-Page |
---|---|---|---|
kill | 2 | ||
killall | 1 | ||
nice | 1 | ||
pkill | 1 | ||
renice | 1 | ||
signal | 7 | ||
sigqueue | 3 | ||
skill | 1 | ||
prep | 1 | prep(1) |
Dokumentation
- Man-Page
- Info-Pages
Links
Weblinks