Переадресация X Window? - PullRequest
       16

Переадресация X Window?

1 голос
/ 28 января 2009

Как я могу переслать вывод X window из программы под Linux (Debian Lenny)? Любые предложения и / или опыт?

Самый простой способ - перезапустить процесс с помощью новой переменной среды DISPLAY, но я не хочу останавливать процесс вообще. Я хотел бы изменить вывод X на другую машину "на лету" ...

Очевидно, что есть некоторые "X прокси", которые могут сделать это для меня, но у меня нет никакого опыта в этом, и Google не может дать мне быстрое решение.

[править] Пояснение: я не хочу пересылать полный рабочий стол (с VNC или аналогичным), а также я не хочу пересылать только одно окно. Я хочу переслать все выходные данные определенного процесса, без перезапуска процесса. [/ Edit]

Ответы [ 5 ]

2 голосов
/ 16 февраля 2009

Звучит как работа для xmove . Это в Debian (хотя, к сожалению, Ленни, похоже, его не хватает; может, версия sid будет работать?) И Ubuntu .

2 голосов
/ 28 января 2009

Ваша программа установила сокетное соединение (возможно, сокет домена unix, возможно сокет tcp / ip) с X-сервером. Нет никакого способа перенаправить это соединение сокета в другое место, как только оно открыто.

Может быть, есть некоторый прокси, который вы можете поместить посередине между клиентом и сервером (с самого начала), который будет перенаправлять на другой сервер, но как он будет создавать любые X-объекты, которые были на одном сервере на сервере? новый сервер? Он должен быть чертовски умным в отношении того, что было раньше, и воспроизводить каждую X-команду, пришедшую через сокет, на новый сервер.

2 голосов
/ 28 января 2009
ssh -Y user@server

-Y часть указывает ssh на туннель X, поэтому, когда я запускаю какую-то программу из клиента, она будет показана на моем экране. Недостатком является то, что на клиенте должен быть установлен X (выполнимо, но не практично в Windows), и это работает только для программ, которые вы запускаете с клиента, вы не можете подключиться к существующему видеовыходу.

Учитывая ваше редактирование, что вам нужно увидеть вывод видео уже запущенного процесса, этот подход явно не подходит для вас.

2 голосов
/ 28 января 2009

Я не думаю, что на лету возможно ... Но вы могли бы использовать VNC, чтобы увидеть, что на машине происходит.

Не на лету, но этот учебник может помочь: http://www.vanemery.com/Linux/XoverSSH/X-over-SSH2.html

1 голос
/ 16 февраля 2009

Поскольку пока нет ответов, только предложения сделать что-то еще, я решил ответить на свой вопрос. : -)

Самое близкое, что я могу сделать, - это использовать x11vnc в Linux (в качестве X-сервера) и Ultra VNC в качестве клиента в Windows. Могут быть и другие клиенты VNC, которые также поддерживают подключение к одному окну, но я нашел Ultra VNC и перестал искать.

И x11vnc, и Ultra VNC получили поддержку протокола только для переадресации одного окна. Нужно немного настроить, и он будет пересылать только одно окно, а не любое новое окно, созданное из того же процесса. Всплывающие окна и диалоговые окна могут вызывать проблемы, так как они могут отображаться в не перенаправленной части рабочего стола или просто отображать часть поверх исходного окна ...

Это наименее плохое решение, которое я нашел до сих пор.

...