kill: Unterschied zwischen den Versionen

Aus Mikiwiki
Wechseln zu: Navigation, Suche
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
Zeile 1: Zeile 1:
Der [[Shell-Befehl]] <b>kill</b> sendet Signale an laufende [[Prozess]]e. Prozesse sollten nur im Notfall abgeschossen werden, zuerst sollte immer "kill -TERM" versucht werden.
+
Der [[Shell-Befehl]] <b>kill</b> aus dem Paket [[Procps]] sendet Signale an laufende [[Prozesse]]. Prozesse sollten nur im Notfall abgeschossen werden, zuerst sollte immer "kill -TERM" versucht werden.
  
 
Manchmal bleiben Unix-Prozesse "hängen" - entweder hängen dann alle Prozesse eines Benutzers oder nur ein einzelner Prozess, z. B. ein bestimmter Befehl oder eine Prozedur. Hängende Prozesse müssen zuerst gesucht und können dann mit kill abgeschossen werden.
 
Manchmal bleiben Unix-Prozesse "hängen" - entweder hängen dann alle Prozesse eines Benutzers oder nur ein einzelner Prozess, z. B. ein bestimmter Befehl oder eine Prozedur. Hängende Prozesse müssen zuerst gesucht und können dann mit kill abgeschossen werden.
Zeile 49: Zeile 49:
 
<b>Achtung:</b> Um Datenbankinkonsistenzen zu vermeiden sollte <b>niemals</b> ein Informix-oninit-Prozess abgeschossen werden!
 
<b>Achtung:</b> Um Datenbankinkonsistenzen zu vermeiden sollte <b>niemals</b> ein Informix-oninit-Prozess abgeschossen werden!
  
Versuch, den Prozess mit der PID 1701 zu töten.
+
Versuch, den Prozess mit der [[Prozessnummer]] 1701 zu töten.
  
 
  $ <b>kill -TERM 1701</b>
 
  $ <b>kill -TERM 1701</b>
Zeile 55: Zeile 55:
 
  $ <b>kill -15 1701</b>
 
  $ <b>kill -15 1701</b>
  
Sanftes Beenden mehrerer Prozesse, immer von der höchsten PID zur niedrigsten.
+
Sanftes Beenden mehrerer Prozesse, immer von der höchsten Prozessnummer zur niedrigsten.
  
  $ <b>kill -15 <i>PID</i> <i>PID</i></b>
+
  $ <b>kill -15 <i>Prozessnummer</i> <i>Prozessnummer</i></b>
  
  $ <b>kill -9 <i>PID</i></b>
+
  $ <b>kill -9 <i>Prozessnummer</i></b>
  
Töten mehrerer Prozesse, immer von der höchsten PID zur niedrigsten.
+
Töten mehrerer Prozesse, immer von der höchsten Prozessnummer zur niedrigsten.
  
  $ <b>kill -9 <i>PID</i> <i>PID</i></b>
+
  $ <b>kill -9 <i>Prozessnummer</i> <i>Prozessnummer</i></b>
  
 
Die Befehle [[killall]] und [[pkill]] können allen Prozessen mit einem bestimmten Namen oder allen Prozessen eines bestimmten Benutzers ein Signal schicken.
 
Die Befehle [[killall]] und [[pkill]] können allen Prozessen mit einem bestimmten Namen oder allen Prozessen eines bestimmten Benutzers ein Signal schicken.
Zeile 81: Zeile 81:
  
 
{{cat|Prozess}}
 
{{cat|Prozess}}
 +
{{cat|Prozessverwaltung}}
 
{{cat|Shell-Befehl}}
 
{{cat|Shell-Befehl}}
 
{{cat|UNFERTIG}}
 
{{cat|UNFERTIG}}

Aktuelle Version vom 13. Februar 2011, 16:09 Uhr

Der Shell-Befehl kill aus dem Paket Procps sendet Signale an laufende Prozesse. Prozesse sollten nur im Notfall abgeschossen werden, zuerst sollte immer "kill -TERM" versucht werden.

Manchmal bleiben Unix-Prozesse "hängen" - entweder hängen dann alle Prozesse eines Benutzers oder nur ein einzelner Prozess, z. B. ein bestimmter Befehl oder eine Prozedur. Hängende Prozesse müssen zuerst gesucht und können dann mit kill abgeschossen werden.

Bei der Arbeit mit einer Terminalemulation reicht es bereits, die Terminalemulationssitzung zu beenden, um die hängenden Prozesse zu beenden.

Optionen

Option Wert Funktion
HUP 1 Hang-up. Dient oft dazu, Serverdienste anzuweisen, ihre Konfiguration neu einzulesen.
INT 2 Interrupt. Anhalten des Programms - der Prozess wird dabei normalerweise getötet, kann sich aber dagegen wehren. Dieses Signal wird normalerweise mit "CTRL+C" erzeugt.
KILL 9 Kill. Prozess zwangsweise beenden bzw. "töten". Dabei wird keine Rücksicht darauf genommen, ob der Prozess noch Daten speichern will.
SIGV 11 Segmentation Fault. Prozess wegen Speicherschutzverletzung zwangsweise beenden.
TERM 15 Terminate. Der Prozess wird normalerweise getötet, kann sich aber dagegen wehren. Es handelt sich um den Signal-Standardwert.
CONT 18 Continue. Prozessausführung fortsetzen.
STOP 19 Stop. Prozessausführung anhalten.
TSTP 20 Terminal. Der Prozess wird angehalten, aber nicht getötet. So angehaltene Prozesse können mit fg oder über das Signal "CONT" fortgesetzt werden. Normalerweise wird das Signal "TSTP" mit "CTRL+Z" erzeugt.

Verwendung

Zum Testen kann z. B. ein Prozess mit "ping localhost" gestartet werden. Danach können alle möglichen Signale an diesem Prozess getestet werden.

Suchen hängender Prozesse

$ whodo <Benutzername>
$ whodo | more
$ ps -ef | more
$ ps -ef | grep <Benutzername>
$ ps -u <Benutzername>
$ ps -ef | grep <Prozessname>

Prozesse abschiessen

Achtung: Um Datenbankinkonsistenzen zu vermeiden sollte niemals ein Informix-oninit-Prozess abgeschossen werden!

Versuch, den Prozess mit der Prozessnummer 1701 zu töten.

$ kill -TERM 1701
oder
$ kill -15 1701

Sanftes Beenden mehrerer Prozesse, immer von der höchsten Prozessnummer zur niedrigsten.

$ kill -15 Prozessnummer Prozessnummer
$ kill -9 Prozessnummer

Töten mehrerer Prozesse, immer von der höchsten Prozessnummer zur niedrigsten.

$ kill -9 Prozessnummer Prozessnummer

Die Befehle killall und pkill können allen Prozessen mit einem bestimmten Namen oder allen Prozessen eines bestimmten Benutzers ein Signal schicken.

Killen mehrerer Java-Prozesse.

# for i in $(ps -ef | grep java | awk '{print $2}'); do kill -9 $i; done
# for i in $(ps -ef | grep z39target | awk '{print $2}'); do kill -15 $i; done

Weblinks

Herausgeber Sprache Webseitentitel Anmerkungen
country DE.gif Wikipedia ger kill (Unix)wbm Enzyklopädischer Artikel