Як запустити програмне забезпечення GUI на віддаленому ПК Linux через SSH


109

Іноді мені потрібно запустити медіаплеєр XMBC або інше програмне забезпечення GUI на одному з моїх ПК (невеликий ПК Xubuntu, який використовується як медіа-центр).

Зазвичай я це роблю, запускаючи сервер X11vnc на віддаленому ПК через SSH і ніж підключаюся з клієнтом Xvnc до робочого столу Xfce.

Чи є спосіб запустити програмне забезпечення із графічним інтерфейсом на віддалений ПК Linux через SSH?

Дякую!


Може підтвердити, що підхід у вибраній відповіді працює, якщо віддалений клієнт також є Mac. Успішно працює з macOS Sierra.
Бенджамін Р

Відповіді:


136

Так. Вам просто потрібно запустити export DISPLAY=:0(або все, що віддалений дисплей буде пронумеровано) у своєму сеансі ssh, і програми, які запускаються, працюватимуть на віддаленому дисплеї. Швидкий приклад:

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

Firefox зараз працює на timекрані.

Однак, коли ви закриваєте сеанс ssh, більшу частину часу віддалене додаток закриється. Якщо ви хочете відключитися від ssh, але залишити програму запущеною, потрібно запустити її спеціальним способом, використовуючи щось на зразок екрана (підтримує сеанс ssh у фоновому режимі) nohupабо іншим методом. Для отримання додаткової інформації про це нещодавно виникло ще одне питання .

Ви можете скоротити все це в одну команду, яка з'єднає, експортує дисплей в рядок та запустить програму таким чином, що не закриє її після вмирання сеансу ssh:

ssh tim "DISPLAY=:0 nohup firefox"

Він сказав, No DISPLAY: this may not be what you want.коли я спробував це (я до речі спробував це з abiword. `
PyRulez

1
@PyRulez У першому рядку відзначте "або все, що віддалений дисплей пронумеровано як". Якщо це не перший графічний сервер, він може бути: 1 або вище. Запустіть, wщоб побачити, хто ввійшов і де. Це також скаже вам номер DISPLAY.
Олі

1
Як відключити його
акабхірав

1
unset DISPLAY
Олі

7
іноді ви хочете зробити навпаки і запустити додаток X локально, просто підключіться за допомогою -Y, а потім запустіть свою програмуssh -Y <remoteip>
Postadelmaga
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.