Zum Inhalt springen

Kill: Unterschied zwischen den Versionen

Aus Foxwiki
Die 5 zuletzt angesehenen Seiten:  kill » kill » kill » kill » kill
 
(18 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 2: Zeile 2:


== Beschreibung ==
== Beschreibung ==
Das Kommando dient der Steuerung bereits laufender Prozesse, indem es an diese Signale versendet
; Steuerung laufender Prozesse
* Während einige Signale vordefinierte Bedeutungen besitzen, können andere von den Prozessen nach eigenen Vorstellungen behandelt werden
* Signale senden
* Das Versenden von Signalen soll auch im Zusammenhang mit Prozessen diskutiert werden


== 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
Das Standardsignal für kill ist TERM
* Mit -l oder -L können Sie die verfügbaren Signale auflisten
* Mit -l oder -L können Sie die verfügbaren Signale auflisten
Zeile 15: Zeile 19:


== 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
* Das Signal kann mit Namen oder Nummer angegeben werden
* Ist kein Signal angegeben, wird SIGTERM (15) gesendet
* Ist kein Signal angegeben, wird SIGTERM (15) gesendet
Zeile 63: Zeile 67:


=== Implementierung ===
=== Implementierung ===
Viele [[Shell]]s besitzen einen eingebauten Kill-Befehl
; [[Buils-In]]
[[Linux/Shell]]s besitzen oft einen eingebauten Kill-Befehl
<syntaxhighlight lang="bash" highlight="1" line>
<syntaxhighlight lang="bash" highlight="1" line>
type kill
type kill
Zeile 70: Zeile 75:


; Direkter Aufruf
; Direkter Aufruf
/bin/kill direkt aufrufen, um den Konflikt zu umgehen
Konflikt umgehen
<syntaxhighlight lang="bash" highlight="1" line>
<syntaxhighlight lang="bash" highlight="1" line>
/bin/kill
/bin/kill
Zeile 76: Zeile 81:


== Anwendung ==
== Anwendung ==
=== Alle Prozesse beenden ===
; killt alle Prozesse, die gekillt werden können
; killt alle Prozesse, die gekillt werden können
<syntaxhighlight lang="bash" highlight="1" line>
<syntaxhighlight lang="bash" highlight="1" line>
Zeile 81: Zeile 87:
</syntaxhighlight>
</syntaxhighlight>


; übersetzt die Zahl 11 in einen Signalnamen
=== Signalnummer übersetzen ===
übersetzt die Zahl 11 in einen Signalnamen
<syntaxhighlight lang="bash" highlight="1" line>
<syntaxhighlight lang="bash" highlight="1" line>
kill -l 11
kill -l 11
</syntaxhighlight>
</syntaxhighlight>


=== Verfügbare Signale ===
; listet die Auswahl der verfügbaren Signale in einer übersichtlichen Tabelle auf
; listet die Auswahl der verfügbaren Signale in einer übersichtlichen Tabelle auf
<syntaxhighlight lang="bash" highlight="1" line>
<syntaxhighlight lang="bash" highlight="1" line>
Zeile 91: Zeile 99:
</syntaxhighlight>
</syntaxhighlight>


Sendet das Standardsignal SIGTERM an alle diese Prozesse
=== SIGTERM an Prozesse senden ===
; Sendet das Standardsignal SIGTERM an alle diese Prozesse
<syntaxhighlight lang="bash" highlight="1" line>
<syntaxhighlight lang="bash" highlight="1" line>
kill 123 543 2341 3453
kill 123 543 2341 3453
</syntaxhighlight>
</syntaxhighlight>


== Konfiguration ==
=== Dateien ===
{| class="wikitable options"
|-
! Datei !! Beschreibung
|-
| ||
|-
| ||
|}
<noinclude>
<noinclude>


Zeile 112: Zeile 111:
{{Special:PrefixIndex/{{BASEPAGENAME}}/}}
{{Special:PrefixIndex/{{BASEPAGENAME}}/}}


{| class="wikitable sortable options big"
{| class="wikitable sortable options col2center"
|-
|-
! Kommando !! Section !! Beschreibung !! MAN-Page
! Kommando !! Section !! Beschreibung !! MAN-Page
|-
|-
| [[kill]] || 2 || kill(2) ||
| [[kill]] || 2 || ||
|-
|-
| [[killall]] || 1 || ||
| [[killall]] || 1 || ||
Zeile 124: Zeile 123:
| [[pkill]] || 1 ||  ||
| [[pkill]] || 1 ||  ||
|-
|-
| [[renice]] || 1) ||  ||
| [[renice]] || 1 ||  ||
|-
|-
| [[signal]] || 7 ||  ||
| [[signal]] || 7 ||  ||
Zeile 145: Zeile 144:
{{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]]
[[Kategorie:Linux/Befehl]]


</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
  • 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

Buils-In

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