Запустить приложение через 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 , Запустите виртуальный X-сервер, затем попросите Rhythmbox подключиться к нему.
ssh username@example.com 'Xvfb :1 -screen 0 800x600x8 & sleep 1; DISPLAY=:1 rhythmbox &'