Как запустить программное обеспечение с графическим интерфейсом на удаленном ПК с Linux через SSH

109

Иногда мне нужно запустить медиаплеер XMBC или другое программное обеспечение с графическим интерфейсом на одном из моих ПК (маленький ПК Xubuntu, используемый в качестве медиацентра).

Обычно я делаю это, запуская сервер X11vnc на удаленном ПК через SSH и затем подключаясь с клиентом Xvnc к рабочему столу Xfce.

Есть ли способ запустить программное обеспечение с графическим интерфейсом на удаленном ПК с Linux через SSH?

Спасибо!

Raben
источник
Может подтвердить, что подход в выбранном ответе работает, если удаленным клиентом также является Mac. Успешно работает с macOS Sierra.
Бенджамин Р

Ответы:

136

Да. Вам просто нужно запустить export DISPLAY=:0(или любой другой номер удаленного дисплея) в сеансе ssh, и программы будут работать на удаленном дисплее. Быстрый пример:

oli@bert:~$ ssh tim
oli@tim:~$ export DISPLAY=:0
oli@tim:~$ firefox

Firefox теперь работает на timдисплее.

Однако, когда вы закрываете свой ssh-сеанс, в большинстве случаев удаленное приложение закрывается. Если вы хотите отключиться от ssh, но оставить приложение работающим, вам нужно запустить его особым образом, используя что-то вроде screen (сессия ssh работает в фоновом режиме) nohupили другой метод. Для получения дополнительной информации по этому вопросу недавно был еще один вопрос .

Вы можете сократить все это до одной команды, которая будет подключаться, экспортировать встроенный дисплей и запускать приложение так, чтобы оно не закрывалось после завершения сеанса ssh:

ssh tim "DISPLAY=:0 nohup firefox"
Оли
источник
Он сказал, No DISPLAY: this may not be what you want.когда я попробовал это (кстати, я попробовал это из abiword. `
PyRulez
1
@PyRulez Обратите внимание на «или на что удаленный дисплей пронумерован» в первой строке. Если это не первый графический сервер, он может быть: 1 или выше. Запустите, wчтобы увидеть, кто вошел в систему и где. Это также скажет вам номер дисплея.
Оли
1
Как я могу выключить его
akabhirav
1
unset DISPLAY
Оли
7
иногда вы хотите сделать обратное и запустить приложение X локально, просто подключитесь с помощью -Y, а затем запустите ваше приложениеssh -Y <remoteip>
Postadelmaga