Як я можу запустити Firefox на CentOS без дисплея? [зачинено]


16

Я намагаюся запустити браузер Firefox GUI на безголовому сервері CentOS для того, щоб виконати деякі веб-тестування.

Мені не потрібно бачити графічний вихід, тому що я використовую API сервера Selenium для керування входом браузера та перевірки результатів.

Налаштування було успішно протестовано на настільному комп’ютері Mac. Однак він не запускається на моєму безголовому сервері VPS CentOS із наступним повідомленням "Помилка: не вказано дисплей". (Що має сенс, оскільки це просто сервер, який сидить на стійці десь.)

Як я можу змусити Firefox працювати без дисплея, тож Selenium зможе взаємодіяти з ним? Або - в більш широкому плані - як люди запускають додатки, призначені лише для GUI, на сервері Linux, коли немає дисплея?

Я помітив, що у Firefox є такий варіант командного рядка:

X11 options
  --display=DISPLAY  X display to use

На жаль, я нічого не знаю про X11 або дисплеї під CentOS, тому не знаю, що вказати в командному рядку, або якщо це допоможе.


4
Мені здається дуже дивним, що питання, яке було знято 13 разів, закрите як "занадто локалізоване".
harshath.jr

1
Саме у мене є подібне питання, і питання, і відповідь були корисними для мене. Це, безумовно, слід знову відкрити, якщо хтось знайде інше рішення.
Marek Rost

Відповіді:


18

Використовуйте Xvfb. Він дає вам X-сервер, який не потребує підключення до фізичного дисплея.

(Отже, на CentOS ви б зробили щось на кшталт "yum install xorg-x11-server-Xvfb".)

Потім ви можете запустити його на дисплеї ": 1" командою "/ path / on / which / встановлено / Xvfb: 1 -екран 0 1024x768x24 &". Це створить екран з роздільною здатністю 1027x768 та глибиною 24. Використання "&" призведе до виконання команди у фоновому режимі.

Перед запуском Firefox потрібно зробити дисплей доступним, що робиться за допомогою команди Export - тобто. "експортувати DISPLAY =: 1", вказуючи на будь-який хост.


Оце Так! Спасибі! Це працює - хоча я отримую TONS дивних повідомлень про помилки з дисплея. Я напишу нове запитання про них. Підсумок, незважаючи на повідомлення, працює і повертає потрібні мені дані. Дуже дякую, це лише допомога, яка мені була потрібна.
Ерік

До речі - як я можу "вимкнути" дисплей Xvfb, коли все закінчу?
Ерік

Ви повинні мати можливість просто вбити процес. Якщо ви хочете отримати більш досконалі, ви можете вивчити налаштування сценаріїв запуску / зупинки (якщо пакет ще не надає його; можливо: подивіться в /etc/init.d для будь-якого сценарію xvfb).
cjc

1
Зрозумів дякую. Я опублікував додаткове запитання щодо інформаційних / помилок, які я бачу, якщо ви шукаєте більше репутаційних балів :-) serverfault.com/questions/363914/…
Ерік,

Ця відповідь є правильною, але ви ОБОВ'ЯЗКОВО мати на увазі, що exportкоманду ОБОВ'ЯЗКОВО встановити на тому ж сеансі терміналу , що і термінал, на якому ви запускаєте свій firefox
TuyenNTA
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.