Prozesse beenden

killall

Sie kennen das Problem von Windows: Ein Programm bleibt hängen, es "stürzt ab". Das passiert zwar relativ selten in Linux, aber es kommt vor. Vor allem Beta-Versionen, die noch nicht völlig fehlerbereinigt sind, neigen häufig dazu. Was in Linux allerdings fast nie passiert, ist, daß Sie den Rechner neu booten müssen. Sie haben die Möglichkeit, das hängende Programm zu beenden ("abzuschießen"). Dazu existieren die Befehle killall und kill. Arbeitet man auf einer X-Windows-Oberfläche, so sind im Normalfall alle Programme außer dem abgestürzten startbar. Das bedeutet, man öffnet eine Konsole und kann in dieser das hängende Programm beenden. Hat sich z.B. Netscape aufgehängt, so wird es (und alle anderen Programme, die das Wort netscape im Namen haben) durch den Befehl:

 

killall netscape

 

beendet. Nach einem solchen "unsanften" Beenden eines Prozesses existiert oft ein sog. "Lockfile". Dies steht im Beispiel von Netscape im Verzeichnis ~/.netscape und heißt schlicht lock. Falls ein Programm nach dem "Abschießen" nämlich nicht mehr gestartet werden kann (kommt bei Netscape des öfteren vor), muß zuerst dieses Lockfile gelöscht werden. Falls killall keine Auswirkung zeigt, kann die Option -9 benutzt werden, die noch unsanfter ist als der einfache Befehl.

 

 

kill

kill funktioniert wie killall, nur daß das Programm nicht mit seinem Namen eingegeben wird, sondern mit seiner Prozeßnummer, der sog. PID. Jedes Programm, jeder Befehl, der gestartet wird, sei es beim Booten oder durch den User, erhält eine individuelle Prozeßnummer. Die laufenden Prozesse werden mit dem Befehl ps angezeigt. Um alle Prozesse, die gestartet wurden, anzuzeigen, wird ps -ax ausgeführt. Will  man nun wissen, welche Prozeßnummer z.B. Netscape hat, kann man nach die Ausgabe aller Prozesse durchscrollen oder elegant per grep-Befehl den Netscape-Prozeß herausfiltern. Der gesamte Befehl lautet dann:

 

            ps auxwww | grep netscape

 

Je mehr ws eingegeben werden, umso länger werden die Ausgabezeilen (nützlich bei sehr langen Pfaden, die sonst abgeschnitten werden. Die Ausgabe sieht dann etwa so aus:

 

            clemens  779  0.0  5.1 22284 1120 ?     S  11:58  0:01       /opt/netscape/netscape

            clemens  968  0.0  0.2  1676  78 pts/0  S  12:53  0:00 grep netscape

 

Zuerst steht der Benutzer, der den Prozeß gestartet hat, danach folgt schon die Prozeßnummer (PID). Wir sehen hier zwei Prozesse, da grep nach der Zeichenfolge "netscape" gesucht hat und der grep-Befehl selbst ebenfalls ein Prozeß ist, der eine Nummer erhalten hat. Zum beenden von Netscape verwenden wir nun den Befehl kill mit der PID des Prozesses, also in unserem Beispiel:

 

            kill 11779

 

Auch hier kann bei hartnäckigen Fällen die Option -9 benutzt werden, also

 

            kill -9 11779

 
 
 
 
 

Sehr geehrter Besucher! Leider verwenden Sie einen veralteten Browser. Sie können einen sehr guten, sicheren, stabilen und zeitgemässen Browser kostenlos unter dem folgenden Link herunterladen: Firefox Browser auf www.mozilla.org Dieser Browser ist erhältlich für: Windows, MacOS (Apple), iPhone, Android und Linux.