Fenster ist ausgeblendet, aber Prozess läuft [geschlossen]

12

Wie kann ich die Fenster für eine bestimmte PID wiederherstellen? Es wäre in einigen Situationen nützlich, in denen das Fenster eines bestimmten Programms verschwindet (passiert manchmal mit mir).

Zum Beispiel, jedes Mal wenn ich Hexchat schließe, zeigt es einen Dialog zur Bestätigung an. Wenn ich auf Abbrechen klicke, ist das Fenster sowieso weg, aber der Prozess läuft weiter im Hintergrund. (Ich kann es ID) pgrep.

Ist es möglich, das Fenster wiederherzustellen, wenn ich die PID kenne?

    
userEng15 16.03.2013, 06:38
quelle

5 Antworten

3

Wie Brandon Rhodes erklärte, wenn das Fenster durch seinen Elternprozess zerstört / verdeckt wird, gibt es keine Möglichkeit, es von außerhalb des Prozesses oder der Anwendung selbst wiederherzustellen / neu zu erstellen.

Sie können vom Fenstermanager bestätigen, versuchen Sie: wmctrl -l -p , es wird kein Fenster zu seiner PID aufgelistet.

Also, es ist möglich, dass hexchat noch reagiert, versuchen Sie:

hexchat -e --command="gui show"

-e URL öffnen oder Befehl in einem vorhandenen HexChat ausführen

Referenzen:

user.dz 03.05.2014 14:52
quelle
2

Leider nein - es gibt normalerweise keine Möglichkeit, eine X Windows-Anwendung dazu zu bringen, sich wieder mit dem Windowing-System zu verbinden, wenn sie ihre Verbindung verliert und ihr Fenster zerstört wird. Und Fenster werden im Allgemeinen nur verschwinden, wenn es einen Fehler im Programm selbst gibt - in diesem Fall ist der Prozess wahrscheinlich in einem gehängten Zustand, ohne es zu wissen, wartet auf I / O, das nie auftreten wird, weil es nicht merkt, dass sein Fenster verschwunden ist .

Es sei denn, die Anwendung ist sehr selten und lässt Sie ein spezielles Signal oder eine Nachricht senden, um eine Verbindung mit dem X-Server herzustellen oder ein neues Fenster neu aufzubauen, oder es ist noch irgendwo auf dem Bildschirm als Symbol oder angedockt Symbol und Sie können damit interagieren, der Prozess des Programms muss einfach beendet werden und Sie müssen es neu starten.

Das Verhalten beim Schließen des letzten Fensters, ohne den Prozess zu beenden, ist im Allgemeinen ein Fehler, den Sie über die Anwendung im Upstream-Bereich melden können.

(Hinweis: Es gibt seltene Ausnahmen, wie Webbrowser, die einen laufenden Prozess beibehalten, auch wenn das letzte Fenster geschlossen ist. In diesen Fällen wird jedoch einfach auf das Symbol des Browsers erneut geklickt oder es von der Befehlszeile aus erneut ausgeführt bereits laufender Prozess, um ein neues Fenster zu öffnen. Auch hier muss eine App speziell geschrieben werden, um temporäre Fensterlosigkeit zu behandeln, wenn dies funktionieren soll.)

    
Brandon Rhodes 24.04.2014 19:35
quelle
1

Wenn der Prozess einfach im Hintergrund ist, passt diese Antwort auch hier:

Verwenden Sie fg , um den Prozess wieder in den Vordergrund zu bringen.

Siehe die vollständige Antwort für weitere Anweisungen.

    
j08lue 27.03.2014 11:15
quelle
1

Ich kenne Hexchat nicht, aber möglicherweise verwendet das Programm ein Tray-Icon, das es ermöglicht, das Hauptfenster zurück zu bekommen. Leider gibt es unter Linux mehrere Tray-Implementierungen, und nicht alle funktionieren zusammen.

Ich hatte ein solches Problem mit dem Programm RadioTray, das nach dem Update auf Xubuntu 14.04 nicht mehr auftauchte. Die Lösung hat sie neu konfiguriert (die Datei ~ / .local / share / radiotray / config.xml hatte die Option 'gui_engine' mit den drei möglichen Werten 'appindicator', 'systray' und 'chooser').

Wenn das nicht hilft, versuchen Sie, die Optionen / Einstellungen Ihrer Anwendung zu überprüfen. Möglicherweise finden Sie eine Option 'In Fach minimieren'. Deaktivieren Sie es und versuchen Sie erneut, das Fenster zu schließen.

    
Daniel Alder 03.05.2014 12:39
quelle
0

Sie könnten Strg + Alt + Entf versuchen und dann den Vorgang beenden. Hoffe das hilft. Das mache ich, wenn ein Programm in Ubuntu einfriert oder sich komisch auf mich einspielt.

    
John H 03.05.2014 13:49
quelle

Tags und Links