[[Vorlage(getestet, general)]] {{{#!vorlage Wissen [:Terminal:Ein Terminal öffnen] }}} [[Inhaltsverzeichnis(1)]] [[Bild(Wiki/Icons/terminal.png, 48, align=left)]] '''kill''' sendet über die Prozess-ID (PID) [:Signale:] an einen [:Prozesse:Prozess]. Es wird oft benutzt, um außer Kontrolle geratene (aufgehängte) Prozesse zu beenden. Das Standardsignal ist `-SIGTERM` (15) zum Beenden/Terminieren eines Prozesses, es können aber auch andere Signale gesendet werden. Meist ist es jedoch bequemer, Programme über ihren Namen anzusprechen. Dies ist mit [:pkill:] oder [:killall:] möglich. Noch bequemer kann man Anwendungen über das Klicken mit der Maus auf deren Fenster beenden, dazu verwendet man [:xkill:]. Eine gute Zusammenfassung liefert der Blogbeitrag [http://be-jo.net/2013/11/4-wege-einen-prozess-zu-beenden-kill-pkill-killall-xkill/ 4 Wege einen Prozess zu beenden: kill, pkill, killall, xkill] {de}. = Installation = Den Befehl `kill` gibt es als eingebauten Befehl der Shell (z.B. der [:Bash:] oder der [:Dash:]) und als eigenständig ausführbares Programm. Beide sind in einer Ubuntu-Installation bereits vorinstalliert. = Aufruf = Der Shell-Befehl und das Programm besitzen eine etwas unterschiedliche Syntax und Funktionalität, siehe dazu `help kill`[1], [:man:] `kill` sowie `info kill`[1]. Die grundlegende Bedienung ist jedoch immer gleich: {{{#!vorlage Befehl kill -SIGNAL PID }}} Es wird ein Signal an den Prozess mit der angegebenen Prozessnummer (`PID`) gesendet. Das Signal kann dabei in drei Formen angegeben werden: Numerisch, alphabetisch oder als voller Name (z.B. `-15`, `-TERM`, `-SIGTERM`). Dabei ist zu beachten, dass der Alphawert immer in Grossbuchstaben geschrieben wird. Negative Prozess-IDs (PIDs) können dazu verwendet werden, ganze Prozessgruppen auszuwählen. Eine PID von `-1` ist von besonderer Bedeutung, sie entspricht allen Prozessen außer `init` (PID 1) und dem `kill`-Prozess selbst. =Beispiele = Allein die Bash unterstützt über 60 verschiedene Signale, darum sind die wichtigsten [:Signale:in einem eigenen Artikel] beschrieben. Im Terminal kann man sich aber mit {{{#!vorlage Befehl kill -l }}} eine Kurzübersicht der Signale in Form einer kleinen Tabelle anzeigen lassen. Mit `kill -l 11` wird die Signalnummer `11` in den entsprechenden Signalnamen und mit `kill -l HUP` wird der Signalname `HUP` in seine Signalnummer übersetzt. * Dem Prozess 4711 ein Signal `-STOP` zum Pausieren senden: {{{#!vorlage Befehl kill -SIGSTOP 4711 }}} und anschließend den angehaltenen Prozess 4711 mit `-CONT` weiterlaufen lassen: {{{#!vorlage Befehl kill -SIGCONT 4711 }}} * Den Prozessen 123, 4567, 89 und 18999 das Standardsignal `-SIGTERM` senden: {{{#!vorlage Befehl kill 123 4567 89 18999 }}} == Hinweis == {{{#!vorlage Warnung Dem normalen Beenden von Prozessen mit `-SIGTERM` (15) ist immer der Vorzug zu geben, weil dadurch dem Programm noch die Möglichkeit gegeben wird, sich "anständig" zu beenden. Erst wenn ein `-SIGTERM` (15) nicht angenommen wird, kann man den Kernel mit einem `-SIGKILL` (9) beauftragen, den Prozess zu [wikipedia:Debugger:debuggen] (Dump) und hart abzubrechen. Die empfangenden Programme können ein `-SIGKILL` (9) ebenso wie ein `-SIGSTOP` (19) nicht abfangen, um programmspezifische Aktionen durchzuführen. }}} Alle Prozesse, die dem Benutzer erlaubt sind, mit `-SIGTERM` beenden: {{{#!vorlage Befehl kill -15 -1 }}} Alle Prozesse, die dem Benutzer erlaubt sind, mit `-SIGKILL` abbrechen: {{{#!vorlage Befehl kill -9 -1 }}} [[Bild(./killed.png, 48, align=right)]] = Links = * [:pkill:] - Beenden von Prozessen anhand des spezifizierten Namens/ regulären Ausdrucks * [:killall:] - Beenden von Prozessen anhand des spezifizierten Namens * [:xkill:] - Fenster via Klicken beenden * [:Shell:] - Einige grundlegende Hinweise zur Verwendung der Shell. * [:Shell/Befehlsübersicht: Befehlsübersicht] - generelle Befehlsübersicht, u.a. mit weiteren Befehlen für die [:Shell/Befehlsübersicht#Systemueberwachung: Systemüberwachung] und [:Shell/Befehlsübersicht#Prozesssteuerung: Prozesssteuerung]. * [:Shell/Prozesssteuerung: Prozesssteuerung] - im Allgemeinen * [:ps:] - Auflistung aller gerade laufenden Prozesse # tag: Shell, System, PID, Prozesse