1

Если я ssh на машине, я могу запускать графические приложения, если я включаю пересылку X11 - я запускаю gedit из командной строки, и gedit появляется в виде окна. У меня такой вопрос: есть ли способ сделать всплывающее окно для приложений, которые уже запущены?

Пример: Предположим, у меня есть две машины, A и B. Я открываю gedit на A, набираю some text и ухожу. Затем я перехожу в A из B. Если я запускаю gedit я просто запускаю другой процесс. Могу ли я получить доступ к процессу gedit, который уже запущен (с some text)? Или это работа для VNC?

1 ответ1

5

Не совсем решение буквального "захвата окон уже запущенных программ", но все же…

Используйте xpra.

На X11 он также известен как экран для X11: он позволяет запускать программы, обычно на удаленном хосте, направлять их отображение на локальный компьютер, а затем отключаться от этих программ и повторно подключаться с того же или другого компьютера без потерять любое состояние.

[...]

Xpra также позволяет пересылать звук, буфер обмена и услуги печати. Сессии могут быть доступны через SSH или защищены паролем через обычные сокеты TCP с SSL или без него.

Он должен быть установлен, настроен и запущен заранее, точно так же, как screen или tmux для консольных приложений. Вы должны сначала запустить свою программу через xpra , а затем вы можете использовать магию (пере) соединения с разных машин.

xpra доступна как пакет xpra по крайней мере в Debian и Ubuntu. Я использовал это несколько раз. Производительность была лучше, чем при простой пересылке X.

Примеры здесь. Следующее от man xpra на моем Kubuntu:

xpra start :7

Запустите сервер xpra используя номер дисплея :7 .

DISPLAY=:7 firefox

Запустите firefox внутри сервера xpra . Запустите это на хосте, где xpra была запущена, или в терминале, перенаправленном xpra . Окно не появится, пока вы не подключите с помощью xpra attach .

Вы запускаете приведенные выше примеры на своем A. Затем вы можете прикрепить непосредственно из A:

xpra attach :7

Подключите к серверу xpra который использует локальный номер дисплея :7 . Любые приложения, запущенные на этом сервере, появятся на вашем экране.

или из вашего B:

xpra attach ssh:foo@frodo:7

Используйте ssh для подключения к серверу xpra , который работает на машину frodo как пользователь foo и с помощью :7 Любые приложения, запущенные на этом сервере, появятся на вашем локальном экране.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .