Запустить приложение через ssh

Я новичок в SSH. Я могу подключиться к удаленному компьютеру. Я также могу запустить приложение на удаленном компьютере и увидеть его графический интерфейс на моем экране.

Но я не знаю, как запустить приложение без вывода на экран.

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

В Интернете я нашел несколько советов, но мне ничего не помогло;

ssh -X name@domain
nohup rhythmbox &
logout

1 ответ

Решение

Вы хотите, чтобы Rhythmbox отображался на экране удаленного компьютера? Экран, на котором отображается приложение с графическим интерфейсом, обозначается DISPLAY переменная окружения. Когда ты бежишь ssh -X, DISPLAY устанавливается в значение, которое указывает, что запросы на отображение должны быть перенаправлены через соединение SSH. Чтобы приложение отображалось на экране удаленного компьютера, установите DISPLAY к стоимости :0,

ssh username@example.com 'DISPLAY=:0 rhythmbox &'

Есть еще одно препятствие: когда приложение подключается к дисплею X, оно должно предоставить своего рода пароль, называемый cookie. Файл cookie создается каждый раз при запуске X-сервера. Ubuntu хранит cookie в файле со случайно сгенерированным именем. Самый простой способ найти cookie - это сохранить его в хорошо известном имени файла при запуске X-сервера. В Ubuntu добавьте этот код в свой ~/.profile:

case $DISPLAY:$XAUTHORITY in
  :*:?*)
    # DISPLAY is set and points to a local display, and XAUTHORITY is
    # set, so merge the contents of `$XAUTHORITY` into ~/.Xauthority.
    XAUTHORITY=~/.Xauthority xauth merge "$XAUTHORITY";;
esac

Для получения дополнительной информации см. Переменную ssh DISPLAY.


Или вы имели в виду, что никогда не хотели видеть окно Rhythmbox? Если это так, подключите его к виртуальному X-серверу, xvfb Установите xvfb, Запустите виртуальный X-сервер, затем попросите Rhythmbox подключиться к нему.

ssh username@example.com 'Xvfb :1 -screen 0 800x600x8 & sleep 1; DISPLAY=:1 rhythmbox &'
Другие вопросы по тегам