Zum Inhalt springen

Kill: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 6: Zeile 6:
* 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 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
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 SIGTERM (15) gesendet
* 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
* Die Signale '''SIGKILL''' und '''SIGSTOP''' können nicht abgefangen werden, sie werden direkt vom Kernel behandelt. Mit '''SIGKILL (9)''' wird der Prozess sofort beendet
* 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 32: Zeile 41:
! 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
|-
|-
| -l || --list || [Signal] || listet Signalnamen auf. Diese Option kann ein Argument haben, welches die Signalnummer in einen Signalnamen umwandelt oder umgekehrt
| -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

Version vom 6. April 2025, 12:29 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
  1. prep(1)
Info-Pages

Links

Weblinks