Wie kann ich eine nicht reagierende GUI-Aufgabe unter Unity beenden?


29

Ich suche nach einer neuen benutzerfreundlichen Methode, um nicht reagierende GUI-Anwendungen unter Unity zu entfernen.

Ich habe einem neuen Unity-Benutzer, der versucht hat, gscan2pdf zu verwenden, über die Schulter geschaut - und gscan2pdf scheint wirklich kaputt zu sein - nachdem nicht viel daran herumgebastelt wurde, verbrauchte der PC viel CPU und Speicher, und der Benutzer musste sofort die gscan2pdf-GUI töten, die war im Vollbildmodus, nicht ansprechbar und hatte den Fokus.

Ok, ich weiß, wie es geht:

  • Drücken Sie Alt+F2und geben Sie ein xkill-> wählen Sie das Fenster
  • Drücke Alt+F2Start xterm, benutze topoder pgrepund dann kill PIDoder benutze direktpkill

Beides sind Möglichkeiten, die für GUI-zentrierte Benutzer nicht sehr intuitiv sind.

Gibt es eine Unity-Verknüpfung, um so etwas zu bekommen xkill?

Oder ist die beste GUI-Methode, um dem Unity-Starter eine top-ähnliche GUI hinzuzufügen? Und welches?


3
Sie könnten eine Tastenkombination für xkill... definieren .
Nitin Venkatesh

@nitstorm, ok, poste als Antwort, wie es geht und ich stimme hoch.
Maxschlepzig

Gepostet mit Screenshots.
Nitin Venkatesh

Ich wusste nicht einmal über die Xkill-Sache ...
AJMansfield

Antworten:


29

Sie können eine Tastenkombination für erstellen xkill.

  1. Geben Sie keyboard in den Unity Dash ein und klicken Sie auf das Symbol. Wählen Sie die Registerkarte Verknüpfungen.

  2. Scrollen Sie dort zum Abschnitt mit den benutzerdefinierten Verknüpfungen und klicken Sie auf die +Schaltfläche

  3. Geben Sie Ihrer Verknüpfung einen Namen, geben Sie den Befehl ein xkillund klicken Sie auf OK.

  4. Klicken Sie abschließend auf die xkillVerknüpfung und drücken Sie die gewünschte Tastenkombination, um ihr eine Verknüpfung zuzuweisen, und das wars :)
  5. Das Drücken der Tastenkombination wird aktiviert, xkillwann immer Sie es benötigen.

Tastatürkürzel

keyboard_shortcuts2


1
Ein Zusatz: Um einen Vorgang abzubrechen xkill, klicken Sie mit der rechten Maustaste auf eine beliebige Stelle, und der Cursor ändert sich von einem Kreuz in den Standardpfeil.
Parto

5

Der beste Weg, den ich finde, ist die Verwendung des Terminalfensters:

gehe zum Terminal:

sudo ps -aux | grep "name of application"

Notieren Sie die Prozess-ID

sudo kill -9 "processID"

Wenn eine GUI-Anwendung nicht mehr reagiert, verlangsamt sie vorübergehend die X-Funktion (GUI) und alle Aktionen werden verlangsamt. Daher ist jede GUI-Aktion zum Schließen des Prozesses langsam.


1
Das OP will den killBefehl nicht, das hat er im zweiten Punkt ausdrücklich angegeben.
Nitin Venkatesh

Wow, das ist ein schlechter Rat auf mehreren Ebenen - 1. Ich habe nach einer GUI oder einer GUI-bezogenen Lösung zum Beenden einer Aufgabe gefragt 2. ps ... | grep- Es gibt den Befehl pgrep, der auch in der Frage 3. kill -9Sends erwähnt wird, SIGKILLunter der sich das Programm befindet keine Chance , in einem freundlichen Art und Weise zu beenden - versuchen sollte man in der Regel immer kill PIDzuerst - das sendet SIGTERM- nur dann , wenn der Prozess nicht beenden SIGTERM, sollte man eine Ausgabekill -9 PID
maxschlepzig

Außerdem gebe ich zu viele Zahlen zurück. Ich denke nicht, dass Anfänger die PID ohne Hilfe leicht finden werden.
Gui Imamura

3

Sie können auch den Systemmonitor ausführen. Sie können einen Prozess mit der Maus auswählen und auf die Schaltfläche "Prozess beenden" klicken, um ihn zu beenden. Dies sollte sogar mit nicht reagierenden Prozessen funktionieren, aber ich denke nicht, dass es so stark ist wie kill -9. Es hat den Vorteil, dass es sich um eine vollständige GUI-Lösung handelt und dem analogen Activity Monitor in Mac OS X sehr ähnlich ist. Dies ist hilfreich für diejenigen von uns, die zwischen Mac und Linux hin und her wechseln.


1

Ich habe es nicht selbst ausprobiert, aber dieses kleine Skript sieht nützlich aus. Dem Unity Launcher wird die Option "Beenden erzwingen" hinzugefügt.


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.