Kann ich vom Terminal aus etwas tun, wenn ein Programm einfriert und Ubuntu nicht mehr reagiert?

Kann ich vom Terminal aus etwas tun, wenn ein Programm einfriert und Ubuntu nicht mehr reagiert?

Ich habe normal gearbeitet und plötzlich stürzte ein Programm ab: Es reagierte nicht mehr und sein Fenster wurde grau. Danach erschien diese Meldung mit der Frage, was zu tun sei: das Programm schließen oder warten, bis es reagiert.

Ich habe die Option „Programm schließen“ ausgewählt, aber es hat nicht wie vorgesehen funktioniert: Das gesamte Ubuntu ist eingefroren und ich konnte nichts tun.

Dann wurde mir klar, dass Ctrl + Alt + tich durch Eintippen das Terminal öffnen konnte, und es funktionierte tatsächlich: Es öffnete das Terminal.Aber ich wusste nicht, was ich als nächstes tun sollte.

Meine Frage ist also:Was kann ich vom Terminal aus tun, wenn ein Programm einfriert?In meinem Fall war es Nautilus (ich stellte eine Verbindung zu einem Remote-Server her und verwendete es als FTP-Programm) und ich startete die Maschine schließlich mit neu sudo reboot.

Es ist scheiße. Es wäre viel besser gewesenum das nicht reagierende Programm zu schließen, aber wie mache ich das? Und was ist, wenn ich den Namen des nicht reagierenden Programms nicht kenne?

Zu Ihrer Information, ich habe dieses Thema gelesen "UI-Elemente reagieren überhaupt nicht mehr" und ich glaube nicht, dass dies hier derselbe Fall ist, da ich dieses Problem normalerweise nicht habe, es eher ungewöhnlich ist, der Speicher einwandfrei funktioniert und die Maschine ziemlich neu ist (Intel Core i7, 8 GB RAM).

Antwort1

Das können Sie tun xkill. Dieses praktische kleine Dienstprogramm zerstört automatisch das nächste Fenster, auf das Sie klicken.

Eine weitere Option, die Sie verwenden können, ist etwas namens topoder htop. Suchen Sie nach einem seltsamen Prozess, insbesondere nach etwas, das als „Zombie“ gekennzeichnet ist oder viele Systemressourcen beansprucht. Sie können es dann mit dem KSchlüssel beenden. Verwenden Sie den Kill-Code 9, da dies zu einem sofortigen und erzwungenen Beenden des Prozesses führt.

Angenommen, das fehlerhafte Programm ist nautilus. Verwenden Sie eine der folgenden Methoden:

  1. Verwenden Sie es xkillim Terminal und klicken Sie auf das Nautilus-Fenster. X beendet seine Sitzung, wodurch Nautilus abstürzt. Drücken Sie die ESCTaste einige Sekunden lang, um sicherzustellen, dass Xkill immer noch nicht ausgeführt wird.
  2. killall -9 nautilus
  3. Führen Sie aus top, suchen Sie nautilusund töten Sie es von oben.

sudoBeachten Sie, dass Sie zum Beenden einiger Prozesse möglicherweise Berechtigungen benötigen .

Antwort2

Einer der großen Vorteile unseres terminalbasierten Systems besteht darin, dass die Antwort ein klares JA ist.

Normalerweise wechsle ich mit control- alt- zu Terminal 1 (Ihr Desktop befindet sich immer in Terminal 7) f1.

Wenn Sie wissen, um welches Programm es sich handelt, ist das ganz einfach: Suchen Sie die Prozess-ID dieser Aufgabe und beenden Sie sie. Die Aufgabe verschwindet auf Terminal 7 und wenn der Absturz dadurch behoben wurde, reagiert Ihr System wieder.

Beispiel mit Firefox: Wenn Sie Firefox starten, erhält es eine Prozess-ID und Sie können diese mit anzeigen ps -ef | grep firefox. Ersetzen Sie Firefox durch das, wonach Sie suchen möchten.

ps -ef |grep firefox
rinzwind  5046  1484 48 19:52 ?        00:00:01 /usr/lib/firefox/firefox
rinzwind  5113  4992  0 19:52 pts/4    00:00:00 grep --color=auto firefox

(der Prozess, der sich auf grep bezieht, ist mein Befehl)

Die erste Zahl hinter meinem Anmeldenamen ist die Prozess-ID. kill -9 5046beendet Firefox:

~$ kill -9 5046
~$ ps -ef |grep firefox
rinzwind  5148  4992  0 19:54 pts/4    00:00:00 grep --color=auto firefox

und Firefox ist von meinem Desktop verschwunden.

Das Problem besteht normalerweise darin, die richtige Prozess-ID zu ermitteln: Wenn Sie 5 Firefox-Sitzungen geöffnet haben, wird es ein kleines Problem sein, die richtige zu finden. Dann müssen Sie möglicherweise weitere Logik hinzufügen, um die Suche einzugrenzen.


Achtung: Gehen Sie mit gesundem Menschenverstand vor. Das Beenden der niedrigeren Prozess-IDs (unter 500) sollte vermieden werden.

verwandte Informationen