Wie man einen Prozess oder ein Programm in Linux beendet

Wenn sich ein Prozess nicht mehr richtig verhält, möchte man ihn manchmal beenden oder abschießen. In diesem Beitrag werden wir einige Möglichkeiten erkunden, wie man einen Prozess oder eine Anwendung sowohl von der Kommandozeile als auch von einer grafischen Oberfläche aus beenden kann, wobei wir gedit als Beispielanwendung verwenden.

Verwendung von Kommandozeilen-/Terminierungszeichen

Strg + C

Ein Problem beim Aufrufen von gedit von der Kommandozeile aus (wenn Sie nicht gedit & verwenden) besteht darin, dass es die Eingabeaufforderung nicht freigibt, so dass die Shell-Sitzung blockiert wird. In solchen Fällen ist die Tastenkombination Strg+C (die Strg-Taste in Kombination mit ‚C‘) sehr hilfreich. Damit wird gedit beendet und alle Arbeit geht verloren (es sei denn, die Datei wurde gespeichert). Strg+C sendet das Signal SIGINT an gedit. Dies ist ein Stoppsignal, dessen Standardaktion das Beenden des Prozesses ist. Es weist die Shell an, gedit zu stoppen und zur Hauptschleife zurückzukehren, und Sie erhalten die Eingabeaufforderung zurück.

$ gedit
^C

Strg + Z

Dies wird ein Suspend-Zeichen genannt. Es sendet ein SIGTSTP Signal an den Prozess. Dies ist auch ein Stoppsignal, aber die Standardaktion ist nicht das Töten, sondern das Suspendieren des Prozesses.

Es stoppt (kill/terminate) gedit und kehrt zum Shell-Prompt zurück.

$ gedit
^Z
+ Stopped gedit
$

Sobald der Prozess suspendiert ist (in diesem Fall gedit), ist es nicht möglich, etwas in gedit zu schreiben oder zu tun. Im Hintergrund wird der Prozess zu einem Job. Dies kann mit dem Befehl jobs überprüft werden.

$ jobs
+ Stopped gedit

jobs ermöglicht es Ihnen, mehrere Prozesse innerhalb einer einzigen Shell-Sitzung zu steuern. Sie können Jobs anhalten, fortsetzen und je nach Bedarf in den Hintergrund oder in den Vordergrund verschieben.

Lassen Sie uns gedit im Hintergrund fortsetzen und eine Eingabeaufforderung zur Ausführung anderer Befehle freigeben. Dazu verwenden Sie den Befehl bg, gefolgt von der Job-ID (beachten Sie in der Ausgabe von jobs oben. ist die Job-ID).

$ bg 1
+ gedit &

Das ist ähnlich wie das Starten von gedit mit &,:

 $ gedit &

Die Verwendung von kill

kill erlaubt eine feine Kontrolle über Signale, die es Ihnen ermöglichen, einen Prozess zu signalisieren, indem Sie entweder einen Signalnamen oder eine Signalnummer angeben, gefolgt von einer Prozess-ID oder PID.

Was ich an kill mag, ist, dass es auch mit Job-IDs arbeiten kann. Starten wir gedit im Hintergrund mit gedit &. Angenommen, ich habe eine Job-ID von gedit aus dem jobs-Befehl, senden wir SIGINT an gedit:

 $ kill -s SIGINT %1

Beachten Sie, dass der Job-ID % vorangestellt werden sollte, sonst betrachtet kill sie als PID.

kill kann auch ohne explizite Angabe eines Signals funktionieren. In diesem Fall ist die Standardaktion das Senden von SIGTERM, was den Prozess beendet. Führen Sie kill -l aus, um alle Signalnamen aufzulisten, und verwenden Sie den Befehl man kill, um die Manpage zu lesen.

Verwendung von killall

Wenn Sie keine Job-ID oder PID angeben wollen, können Sie mit killall einen Prozess mit seinem Namen angeben. Der einfachste Weg, gedit mit killall zu beenden, ist:

 $ killall gedit

Damit werden alle Prozesse mit dem Namen gedit beendet. Wie kill ist das Standardsignal SIGTERM. Es gibt die Möglichkeit, Groß- und Kleinschreibung zu ignorieren, indem man -I verwendet:

$ gedit &
14852
$ killall -I GEDIT
+ Terminated gedit

Um mehr über die verschiedenen Flags zu erfahren, die killall zur Verfügung stellt (wie z.B. -u, das es erlaubt, benutzereigene Prozesse zu beenden), lesen Sie die Manpage (man killall)

Verwenden von xkill

Sind Sie jemals auf ein Problem gestoßen, bei dem ein Mediaplayer, wie z.B. VLC, ausgegraut oder aufgehängt wurde? Jetzt können Sie die PID finden und die Anwendung mit einem der oben aufgeführten Befehle beenden oder xkill verwenden.

xkill ermöglicht Ihnen, ein Fenster mit der Maus zu beenden. Führen Sie einfach xkill in einem Terminal aus, wodurch sich der Mauszeiger in ein x oder ein kleines Totenkopfsymbol verwandeln sollte. Klicken Sie auf das x in dem Fenster, das Sie schließen wollen. Seien Sie jedoch vorsichtig mit xkill – wie die Manpage erklärt, kann es gefährlich sein. Sie wurden gewarnt!

Weitere Informationen finden Sie auf der Manpage des jeweiligen Befehls. Sie können auch Befehle wie pkill und pgrep untersuchen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.