Повторная привязка X-сервера к потерянному процессу - PullRequest
3 голосов
/ 24 ноября 2008

Я использую Xorg, и моя (Qt) программа сама себя демонизирует. Теперь я выхожу и перезагружаю X сервер. Когда я снова вхожу в систему, мой процесс все еще работает нормально, но я не вижу его.

Есть ли способ привязать новое воплощение X-сервера к старому процессу? Если я не перезагружаю весь сервер, но выхожу из системы и снова входите, есть ли способ посмотреть на старый процесс?

Спасибо

Ответы [ 4 ]

2 голосов
/ 17 декабря 2015

XPRA должен достичь ваших требований. И он также может запустить соединение TCP (без необходимости SSH). Запустите его на своем сервере:

xpra start :100 --start-child=xterm --bind-tcp=0.0.0.0:10000

Подключите его на своем клиенте:

xpra attach tcp:SERVERHOST:10000

Вы также можете использовать Mac или приложение Windows XP, чтобы подключить его. Я пробовал на win7 и osx10.10.2. Ссылка для скачивания:

Windows: https://www.xpra.org/dists/windows/Xpra_Setup.exe mac: https://www.xpra.org/dists/osx/x86/Xpra.dmg

0 голосов
/ 24 ноября 2008

Эти ребята говорят, что это возможно, я не проверял эту функциональность ...

Проверьте!

0 голосов
/ 26 декабря 2011

Используйте что-то вроде Xpra или NX: они оба позволяют запускать приложения на внеэкранном сервере X11, к которому можно повторно подключаться при необходимости, а также с удаленных компьютеров. Они оба поддерживают "бесшовные" сессии, поэтому окна будут выглядеть как локальные окна.

Практический пример:

xpra start :10 --start-child=/bin/YOURAPP

Затем всякий раз, когда вы хотите повторно присоединиться (скажем, после перезапуска сервера X11):

xpra attach :10

Или с удаленного компьютера:

xpra attach ssh:THESERVERHOSTNAMEORIP:10

0 голосов
/ 24 ноября 2008

После потери подключения к X-серверу восстановить его невозможно.

Существовал прокси-сервер xserver под названием xmove, но он довольно устарел и не работает с несколькими более новыми расширениями X, которые, вероятно, используются современными инструментами.

Вы можете попробовать запустить ваш процесс на другом виртуальном X-сервере, например, xvnc или (лучше) NX. NX - это технология X-прокси, разработанная NoMachine. Существуют также бесплатные реализации серверов NX. Если вы запускаете вашу программу на таком сервере, вы можете присоединить и отсоединить ее от произвольной графической среды.

...