Linux-Terminal-Basics 10: Programme (zwangs)beenden

Irgendwann ist Schluss mit lustig - wir machen Euch zu Killern und Terminatoren!

Wow, beenden von Programmen. Geht es noch langweiliger? Vermutlich nicht. Aber immerhin deuten die Kommandos auf Action hin, killen und terminieren mit kill ist angesagt. Aber da sich das standardmäßig eher nach Verwaltungsarbeit anfühlt, gibt es in dieser Ausgabe ausnahmsweise auch mal eine grafische Oberfläche. Nun, eine textbasierte Oberfläche, aber immerhin.

In unserer Serie zu Linux-Terminal-Basics zeigen wir Euch, wie Ihr einige der wichtigsten Aufgaben auf der Kommandozeile erledigen könnt - vom Navigieren, über Dateioperationen, bis hin zu komplexen Suchaufträgen. Als Terminal verwenden wir Bash und auch wenn Linux im Vordergrund steht, funktioniert fast alles auch unter Windows. Und nun noch die Links zur Einleitung und zur Übersicht aller Artikel.

Manuelle kill-Lösung

Zunächst die native und eher komplizierte Variante. Um ein Programm, genauer gesagt natürlich einen Prozess, zu beenden, müsst Ihr diesen zunächst mal finden und dann mit dem Tool kill beenden. Das Finden läuft über den nicht wirklich handlichen Prozessmanager ps:

ps -A

Über -A werden alle Prozesse aufgelistet - und das sind mitunter ziemlich viele. Also wollt Ihr filtern:

ps -C cron,gimp,firefox

Über -C könnt Ihr einfach Programme übergeben. Und wenn Ihr mehr Informationen haben wollt:

px -FC firefox

Mit -F werden dann auch die ganzen Programmpfade sichtbar. In allen Fällen braucht Ihr die pid, also die Prozess-ID:

22:49:24 ~ $ ps -FC apache2
UID          PID    PPID  C    SZ   RSS PSR STIME TTY          TIME CMD
mysite_+ 1330976 2076910  0  3707  2352   3 20:30 ?        00:00:00 /usr/sbin/apache2 -f /omd/sites/mysite_22/etc/apache/apache.conf

Wichtig ist hier also 1330976.

Zum Beenden des Prozesses 1330976 braucht Ihr nun das Programm kill:

kill -n 15 1330976
    oder
kill -s SIGTERM 1330976

Kill killt an sich nicht, sondern sendet ein Signal an einen Prozess. Standardmäßig wird ein Prozess freundlich beendet, sprich terminiert - über das Signal SIGTERM, das sich auch über die Nummer 15 senden lässt. Freundlich beenden heißt, dass das Programm quasi gebeten wird zu stoppen - was das Programm ignorieren kann.

Wollt Ihr einen Prozess zwangsbeenden, geht das mit dem SIGKILL-Signal:

kill -n 9 1330976
    oder
kill -s SIGKILL 1330976

Hier killt kill nun also doch. Das Tool mit dem martialischen Namen kann aber noch viel mehr, schaut Euch einfach mal die ganzen möglichen Signale mit

kill -l

an - es sind stolze 64 Einträge! Wie gesagt, das ist der manuelle, klassische, komplizierte Weg. Man kann das alles noch ein wenig vereinfachen, wenn man die Tools pgrep und pkill verwendet, quasi auf Prozesse spezialisierte Varianten von kill und dem Suchprogramm grep. Oder Ihr macht es Euch direkt richtig einfach.

Bequeme kill-Lösung mit htop

Standardmäßig wird Euch bei fast allen Distributionen der simple Prozessmanager top zur Verfügung stehen. Es empfiehlt sich aber eigentlich immer, das deutlich hübschere und einfachere htop zu installieren:

sudo apt install htop

In der Praxis sieht das Tool dann so aus:

prozessmanager htop.
Für den Terminal ist das schon verdammt hübsch!

Das Beenden von Prozessen funktioniert dann analog zum obigen Prozedere - erst mal suchen: Drückt F4 und gebt einen Suchbegriff ein:

filter in htop.
F4: Suche

Wählt dann mit den Pfeiltasten den gewünschten Prozess, drückt F9 für den kill-Modus und wählt dann das passende kill-Signal:

kill-modus in htop.
F5: kill-Modus

Zumindest für den Anfang ist htop sicherlich die bessere Lösung. Falls Ihr es aber doch manuell erledigen wollt und Euch nicht an die Syntax erinnern könnt: Fragt unsere hauseigene Linux-Hilfe cli.help:

curl cli.help/kill

Bonus: Prozesse pausieren

Kill kann Prozesse übrigens auch stoppen und fortführen, also pausieren - abermals über Signale:

kill -s SIGSTOP 1330976
kill -s SIGCONT 1330976

Nützlich ist das zum Beispiel, wenn Ihr den Terminal-Basics mal entwachsen seid und mit Skripten herumspielt.

Mehr zum Thema Kommandozeile.

Mirco Lang

Freier Journalist, Exil-Sauerländer, (ziemlich alter) Skateboarder, Dipl.-Inf.-Wirt, Einzelhandelskaufmann, Open-Source-Nerd, Checkmk-Handbuchschreiber. Ex-Saturn'ler, Ex-Data-Becker'ler, Ex-BSI'ler. Computer-Erstkontakt: ca. 1982 - der C64 des großen Bruders eines Freunds. Wenn Ihr hier mehr über Open Source, Linux und Bastelkram lesen und Tutonaut unterstützen möchtet: Über Kaffeesponsoring via Paypal.freue ich mich immer. Schon mal im Voraus: Danke! Nicht verpassen: cli.help und VoltAmpereWatt.de. Neu: Mastodon

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Schaltfläche "Zurück zum Anfang"