Identifizieren und Beenden des Hängeprozesses, wenn das System hängt und langsam auf Benutzereingaben reagiert

24

Als ich kürzlich versuchte, ein Video mit VLC zu öffnen, wurde mein System langsamer, die offenen Anwendungen Webbrowser, VLC und Dateimanager und andere reagierten nicht mehr. Die Maus reagierte nur noch sehr langsam.

Auf einem Windows-Computer würde ich eine Tastenkombination STRG-ALT-ENTF drücken, um den Task-Manager zu öffnen, den Prozess zu durchsuchen, der den Hang verursacht hat, und ihn zu beenden.

Da ich ziemlich neu in der Verwendung von Linux bin, habe ich nicht herausgefunden, wie man eine solche Situation in Ubuntu lösen kann.

Welchen schnellen und effektiven Weg würden Sie empfehlen, um den Hängeprozess zu identifizieren und zu schließen, wenn das System bereits sehr langsam auf Benutzereingaben reagiert?

NES
quelle

Antworten:

32

Es gibt zwei Hauptmethoden, um hängengebliebene Prozesse zu identifizieren. Eine erfolgt über die Benutzeroberfläche des Systemmonitors und die andere über die topBefehlszeile.

System Monitor

Dies finden Sie unter System> Administration

Konto

Sie können in diesem Artikel auch eine Tastenkombination dafür erstellen .

Sobald die GUI gestartet ist, können Sie die Registerkarte Prozesse auswählen, auf der alle ausgeführten Prozesse aufgelistet sind. Sortieren Sie nach der Spalte CPU, um die CPU-intensivste Aufgabe zu finden

Zentralprozessor

Zuletzt können Sie mit der rechten Maustaste auf diese Aufgabe klicken und sie beenden, anhalten oder beenden. Wenn Sie es töten, wird der Prozess sofort gestoppt und aus dem System entfernt.

töten

Befehlszeile

Wenn Sie ein Terminal geöffnet haben, können Sie einfach topFolgendes eingeben, um alle laufenden Prozesse aufzulisten, die denen auf der Registerkarte Prozesse in der GUI ähneln

oben

Im oberen Bereich ist die CPU standardmäßig sortiert, sodass die Aufgaben mit der höchsten CPU-Intensität ganz oben stehen. Sie können jederzeit auf den Buchstaben drücken k, um einen Vorgang abzubrechen

k

Geben Sie einfach die PID des Prozesses ein, den Sie beenden möchten, und drücken Sie die Eingabetaste. Es wird nach einem Kill-Signal gefragt, das gesendet werden soll. Verwenden Sie die Standardeinstellung 15, um den Vorgang zu beenden. Verwenden Sie 9, um ihn sofort zu beenden.

Sigkill

Der Vorgang wird dann abgebrochen.

Wenn Sie Probleme mit der Benutzeroberfläche haben, können Sie versuchen, aus der Ferne auf SSH zuzugreifen, wenn dies aktiviert ist. Alternativ können Sie über Ctrl+ Alt+ F#Wo F#befindet sich eine Funktionstaste (F3, F4, F5 usw.) zu einer virtuellen Konsole wechseln . Um zur Desktop-Umgebung zurückzukehren, wechseln Sie je nach Ubuntu-Version zu F7 oder F8.

Marco Ceppi
quelle
5
Gute Antwort. Normalerweise weise ich die Tastenkombination STRG + ESC dem Systemmonitor zu. Dies gibt mir einen schnellen Zugriff auf den Kill-Prozess.
Javier Rivera
@Marco Ceppi: Wo sind die Bilder geblieben?
Enzotib
@enzotib Der Beitrag wurde aktualisiert
Marco Ceppi
1
+1 für System Monitor. Es könnte einen hängenden VLC-Prozess abbrechen / stoppen, was htop nicht tun könnte.
Malisokan
@malisokan Bist du sicher, dass du htopes nicht kannst? Sie können SIGKILL senden, um alle Hängevorgänge zu beenden, für die Sie Rechte haben.
Val sagt Reinstate Monica
4

Fügen Sie das System MonitorApplet zu Ihrem Panel hinzu ( klicken Sie mit der rechten Maustaste auf das Panel, wählen Sie Add to PannelSystem Monitor aus und suchen Sie danach), und klicken Sie mit der rechten Maustaste darauf, um die System Monitor-Anwendung zu öffnen.

Sie können die System Monitor-Anwendung Alt+F2starten, indem Sie drücken und das Programm starten gnome-system-monitor.

Gehen Sie auf die Registerkarte „Prozesse“ und der rechten Maustaste die appliction Sie Absicht zu töten .

Raphael Bossek
quelle
3

Die meisten bereits gesagt (ich mag Marco Ceppis Antwort), aber es gibt auch ein "Force Quit" -Applet, das Sie zu Ihrem GNOME-Panel hinzufügen können. Klicken Sie mit der rechten Maustaste auf das Panel und wählen Sie "Zum Panel hinzufügen ...":

Alt-Text

Auf diese Weise können Sie eine hängende Anwendung beenden, indem Sie einfach auf das entsprechende Fenster klicken. Sehr schnell und effizient.


Wenn Unity in 11.04 ausgeführt wird, ist diese Anwendung natürlich nicht mehr verfügbar. Es gibt ein Ersatzprojekt Indicator-Forceclose, das jedoch nicht in den Repositorys enthalten ist.

Alternativ könnten wir xkillvon einem Terminal aus laufen .

Takkat
quelle
Zerstört es nur das Fenster oder bricht es auch den Prozess ab?
Val sagt Reinstate Monica
@val bricht den Prozess ab, der das Fenster erstellt hat.
Takkat
Nur getestet: tut es nicht. Ich habe ein Programm erstellt, das im GTK-Callback hängt, und es mit xkill beendet. Das Fenster verschwand, aber das Programm lief weiter (oder hing, wenn Sie es vorziehen). Die Antwort lautet also "Nein". Es kann sein, dass das Programm nicht beendet wird, wenn es ernsthaft steckt.
Val sagt Reinstate Monica
@val bricht natürlich, nachdem Ihr Programm einen anderen Prozess zum Erstellen eines Fensters aufgerufen hat xkill, nur diesen zusätzlichen Prozess ab. Dies ist besonders wichtig für Programme, die ohne X-Server ausgeführt werden, X jedoch zum Fenstern aufrufen. Offensichtlich wäre es unmöglich, ein solches Programm vom X-Server zu töten.
Takkat
Mein Programm hat dafür keinen anderen Prozess aufgerufen. Ich habe ein Programm erstellt, das mit jeder GTK-Anwendung auf dem Markt identisch ist, und es zum Hängen gebracht. xkillwirkt sich nicht auf solche Prozesse aus (GTK führt zum Beenden, wenn ich später das "Hängen" beenden und den Verlust des Fensters behandeln werde). GTK-Rückrufe haben nichts mit Multiprocessing zu tun.
Val sagt Reinstate Monica