Ein paar Hintergrundinformationen: Ich habe es mit einer Software zu tun, die Teil eines größeren Systems ist. Die meisten Teile des Systems verfügen über einen Hintergrundprozess, der kontinuierlich ausgeführt wird, und eine GUI, die geöffnet werden kann, wenn diese Funktionalität benötigt wird. Die spezielle Software, die mir Probleme bereitet, wurde stattdessen als ein einziges Programm geschrieben, das sowohl die GUI als auch die Hintergrundverarbeitung enthält. Dies bedeutet, dass die GUI immer ausgeführt werden muss, da sonst die zugehörige Verarbeitung nicht stattfinden kann. Dies ist (aus mehreren Gründen) nicht erwünscht.
Um dieses Problem zu umgehen, habe ich verschiedene X-Pseudoserver untersucht, mit denen ich das GUI-Fenster entsprechend ein- und ausblenden kann. Die drei, die ich mir speziell angesehen habe, sind xmove , ximove und xpra
xmove ist sehr alt (wurde seit November 1997 nicht mehr entwickelt) und unterstützt keine 24-Bit-Grafik, was kein Starter ist.
Ich habe auch etwas namens ximove gefunden . Der Autor Mark C. Ballew startete es mit der Absicht, xmove zu verbessern (XIMove≡Xmove Improved). Auf seiner Website sieht es jedoch so aus, als ob das letzte Status-Update am 16.08.04 stattgefunden hat. Es enthält Links zu http://forum.ximove.com/, das anscheinend nicht mehr existiert.
xpra scheint die vielversprechendste Option zu sein, aber es hat nicht ganz wie erhofft funktioniert. Ich bekomme viele Fehler, wenn ich mich über "Kairo" beschwere, was in keiner der xpra-Dateien behandelt wird, in denen Abhängigkeiten behandelt werden. Trotzdem funktioniert das Programm für kleine Anwendungen wie einen Webbrowser. Wenn ich versuche, es für mein Problemprogramm zu verwenden, erhalte ich viel mehr Fehler (Kairofehler und andere). und sowohl xpra als auch die Anwendung selbst scheinen abzustürzen.
Ich möchte eine Neuinstallation der neuesten Version von xpra ausprobieren, frage mich aber, ob einer von euch einen Einblick in andere X-Pseudoserver-Anwendungen hat, die ich ausprobieren sollte.
Xvfb :1
starten und Ihr Programm mit starten DISPLAY=:1 yourprogram
. Auf diese Weise wird in Ihrer X-Sitzung keine Benutzeroberfläche angezeigt, und Sie können weiterhin mit der Benutzeroberfläche Ihres Programms interagieren, indem Sie beispielsweise den an die Xvfb-Sitzung angeschlossenen VNC-Server starten. Eine andere Möglichkeit, die Benutzeroberfläche auszublenden, könnte die -geometry
Befehlszeilenoption sein, die normalerweise von xlib-basierten Programmen analysiert wird.
xpra
Floating Around. Diejenigen, die in den meisten Distributions-Repositories bereitgestellt werden, sind absolut veraltet. Versuchen Sie die spätere Version von xpra.org