Назад | Перейти на главную страницу

открыть терминал через ssh запустить firefox -> дисплей не найден

Я хочу запустить тесты на селен на ведомом устройстве Hudson.
Подчиненный (то есть машина), который будет выполнять селен, является Ubuntu 10.04.
Таким образом, у него есть Gnome. Для работы Selenium требуется firefox.

Теперь Хадсон создает ssh-соединение с машиной Ubuntu и запускает там селен. Selenium пытается запустить firefox.

А теперь винит:

Ошибка: не удается открыть дисплей

Что нужно сделать, чтобы "оболочка ssh" отображалась с X-сервера?

Убедитесь, что на удаленном компьютере включена пересылка ssh X11:

$ grep X11 /etc/ssh/sshd_config 
X11Forwarding yes
X11DisplayOffset 10
$

Использовать ssh -X user@remote_machine для подключения к удаленной машине. Если на удаленном компьютере вы используете другого пользователя для запуска X-клиента, используйте xauth list чтобы получить текущие учетные данные пользователя ssh, затем используйте xauth add чтобы добавить учетные данные пользователю, которым вы становитесь, с помощью sudo / su.

read -p 'Username: ' u;sudo -H -u $u xauth add $(xauth list|grep :$(echo ${DISPLAY: -4:2}));sudo su - $u

Если вопрос в том, что я думаю

ssh testuser@ubuntuhost firefox --display :0 -no-remote

Запустит firefox на ubuntuhost и отобразить его на этой машине, предполагая тестовый пользователь вошел в ubuntuhost уже.

Я не знаю Selenium или то, что именно вы хотите проверить (производительность, правильность отображения или просто возвращаемое значение успеха из некоторого javascript), но вам может даже не понадобиться «настоящий» X-сервер, то есть тот, который на самом деле появляется на мониторе хоста Ubuntu. Xvfb может быть вам полезен здесь, но это выходит за рамки исходного вопроса ...

Вам нужно переслать X через туннель ssh, попробуйте следующее:

ssh -X host_IP

после входа в систему запустите firefox в своем терминале, он должен перенаправить ваш X-сервер на ваш локальный компьютер.

ssh -X root @ myserver или что-то в этом роде

Вам необходимо включить перенаправление X и запустить X-сервер локально. Проходить -X или -Y к ssh.