27Aug

Wie man eine Desktop-Anwendung oder einen Hintergrundprozess unter Linux beendet

Windows hat Strg + Alt + Entf und Macs haben Befehl + Wahl + Escape, um das Schließen eingefrorener Anwendungen zu erzwingen. Linux hat seine eigenen Wege, diese sich schlecht benehmenden Prozesse zu "töten", seien es grafische Fenster oder Hintergrundprozesse.

Die genauen grafischen Werkzeuge, die Sie verwenden können, hängen von Ihrer Desktop-Umgebung ab, da jede Desktop-Umgebung verschiedene Werkzeuge in die Tabelle einbringt. Aber die meisten sind ziemlich ähnlich.

Von einem grafischen Desktop

Moderne Linux-Desktops behandeln das ziemlich gut und es kann überraschend automatisch sein. Wenn eine Anwendung nicht reagiert, wird auf einem Desktop mit einem Kompositionsmanager häufig das gesamte Fenster ausgegraut, um anzuzeigen, dass es nicht reagiert.

Klicken Sie auf die Schaltfläche X in der Titelleiste des Fensters, und der Fenstermanager informiert Sie häufig darüber, dass das Fenster nicht reagiert. Sie können entweder etwas Zeit darauf verwenden, zu antworten oder auf eine Option wie "Beenden" klicken, um die Anwendung zu schließen.

Unter Linux ist der Fenstermanager, der die Titelleisten malt, separat von der Anwendung selbst, sodass er normalerweise antwortet, selbst wenn das Fenster dies nicht tut. Einige Fenster zeichnen jedoch ihre eigenen Schnittstellen, so dass dies nicht immer funktioniert.

Mit der Anwendung "xkill" können Sie schnell jedes grafische Fenster auf Ihrem Desktop löschen.

Abhängig von Ihrer Desktopumgebung und deren Konfiguration können Sie diese Verknüpfung möglicherweise durch Drücken von Strg + Alt + Esc aktivieren. Sie könnten auch einfach den Befehl xkill ausführen - Sie könnten ein Terminalfenster öffnen, xkill ohne Anführungszeichen eingeben und die Eingabetaste drücken. Oder Sie können eine Tastenkombination wie Alt + F2 drücken, wodurch das Dialogfeld "Befehl ausführen" auf dem Unity-Desktop von Ubuntu und vielen anderen geöffnet wird. Geben Sie xkill in das Dialogfeld ein und drücken Sie die Eingabetaste.

Ihr Cursor ändert sich in ein X. Klicken Sie auf ein Fenster, und das xkill-Dienstprogramm ermittelt, welcher Prozess mit diesem Fenster verknüpft ist, und bricht diesen Prozess sofort ab. Das Fenster wird sofort verschwinden und schließen.

Ihr Linux-Desktop hat wahrscheinlich ein Tool, das ähnlich wie der Task-Manager unter Windows funktioniert. Auf Unity-Desktop, GNOME und anderen GNOME-basierten Desktops von Ubuntu ist dies das Systemmonitor-Dienstprogramm.Öffnen Sie das Systemmonitor-Dienstprogramm, um eine Liste der laufenden Prozesse zu sehen - einschließlich der Hintergrundprozesse. Sie können Prozesse von hier aus auch gewaltsam beenden, wenn sie sich schlecht benehmen.

Vom Terminal

Nehmen wir an, Sie möchten dies alles vom Terminal aus tun. Wir haben eine Menge der Dienstprogramme behandelt, die Sie dafür verwenden können, wenn wir Befehle zur Verwaltung von Prozessen unter Linux betrachten.

Nehmen wir an, Firefox läuft im Hintergrund und wir wollen es vom Terminal aus beenden. Der standardmäßige Kill-Befehl benötigt eine Prozess-ID-Nummer. Sie müssen diese daher zuerst finden.

Zum Beispiel könnten Sie einen Befehl wie folgt ausführen:

ps aux |grep firefox

Das würde alle Prozesse auflisten und diese Liste an den grep-Befehl leiten, der es filtern und nur Zeilen mit Firefox drucken würde.(Die zweite Zeile, die Sie sehen, ist der grep-Prozess selbst.) Sie können die Prozess-ID auch vom obersten Befehl und vielen anderen Stellen abrufen.

Nimm die Prozess-ID-Nummer aus dem Firefox-Prozess - direkt rechts neben dem Nutzernamen - und gib sie dem Befehl kill. Das heißt, führen Sie den Befehl wie folgt aus:

kill ####

Wenn der Prozess als ein anderer Benutzer ausgeführt wird, müssen Sie zuerst der Benutzer root werden - oder zumindest den Befehl kill mit dem Befehl sudo ausführen:

sudo kill ####

Das ist eine grundlegende Methode, aber es ist nicht ganz die schnellste. Die Befehle pgrep und pkill helfen dabei, dies zu optimieren. Führen Sie zum Beispiel "pgrep firefox" aus, um die Prozess-ID des laufenden Firefox-Prozesses zu sehen. Sie könnten diese Nummer dann dem Befehl kill zuführen.

Oder, überspringen Sie all das und führen Sie "pkill firefox" aus, um den Firefox-Prozess zu beenden, ohne dessen Nummer zu kennen.pkill führt einige grundlegende Mustervergleiche durch - es wird versuchen, Prozesse mit Namen zu finden, die firefox enthalten.

Der killall Befehl ist wie pkill, aber ein bisschen genauer. Es wird alle laufenden Prozesse mit einem bestimmten Namen beenden. Wenn also "killall firefox" ausgeführt wird, werden alle laufenden Prozesse namens "firefox" beendet, aber keine Prozesse, die nur firefox im Namen haben.

Dies sind bei weitem nicht die einzigen Befehle, die in Linux zur Verwaltung von Prozessen enthalten sind. Wenn Sie eine Art von Serververwaltungssoftware verwenden, kann es auch hilfreiche Methoden zum Beenden und Neustarten von Prozessen geben.

Systemdienste arbeiten anders als Prozesse - Sie müssen bestimmte Befehle verwenden, um Dienste herunterzufahren, neu zu starten oder aufzurufen. Diese spezifischen Befehle können auf verschiedenen Linux-Distributionen unterschiedlich sein.

Bildquelle: Lee auf Flickr