Немного справочной информации: я имею дело с программным обеспечением, которое является частью большой системы. У большинства частей системы есть фоновый процесс, который выполняется непрерывно, и графический интерфейс, который может быть открыт, когда эта часть функциональности необходима. Конкретная часть программного обеспечения, которая вызывает у меня проблемы, была написана как отдельная программа, содержащая как графический интерфейс, так и фоновую обработку. Это означает, что GUI должен всегда работать, иначе связанная обработка не может быть выполнена. Это нежелательно (по ряду причин).
В качестве обходного пути я рассмотрел различные псевдосерверы X, которые позволяют мне отображать / скрывать окно графического интерфейса в зависимости от ситуации. Три я смотрел на специально являются XMove , ximove и xpra
xmove действительно старый (не разрабатывался с ноября 1997 года) и не поддерживает 24-битную графику, что не является началом.
Я также нашел что-то под названием Ximove . Автор, Марк C. Ballew начал его с намерением улучшить xmove (XIMove≡Xmove Improved). Но, глядя на его сайт, похоже, что последнее обновление статуса было 16.08.04, и он ссылается на http://forum.ximove.com/, который, похоже, больше не существует.
xpra кажется наиболее перспективным вариантом, но он не совсем сработал, как хотелось бы. Я получаю много ошибок, жалуясь на «Cairo», который не описан ни в одном из файлов xpra, в которых обсуждаются зависимости ... тем не менее программа работает для небольших приложений, таких как веб-браузер. Когда я пытаюсь использовать его для своей проблемной программы, я получаю гораздо больше ошибок (ошибки Каира и другие). и xpra, и само приложение, похоже, аварийно завершают работу.
Я пытаюсь опробовать чистую установку новейшей версии xpra, но мне интересно, есть ли у кого-нибудь из вас какие-либо идеи о других приложениях псевдосерверов X, которые я должен попробовать.
Xvfb :1
и запустить вашу программу с DISPLAY=:1 yourprogram
. Таким образом, вы не увидите никакого пользовательского интерфейса в своем сеансе X, и вы все равно сможете взаимодействовать с пользовательским интерфейсом вашей программы, например, запустив VNC-сервер, подключенный к сеансу Xvfb. Другим способом скрыть пользовательский интерфейс может быть параметр -geometry
командной строки, который обычно анализируется программами на основе xlib.
xpra
плавающих вокруг; те, которые есть в большинстве дистрибутивов, крайне устарели. Попробуйте более позднюю версию с xpra.org