Запуск Xvfb с Firefox
Я пытаюсь запустить безголовый firefox с помощью этой команды sudo xvfb-run -a firefox http://google.com
так что я получаю эту ошибку
(process:9000): GLib-CRITICAL **: g_slice_set_config: assertion 'sys_page_size == 0' failed
Xlib: extension "RANDR" missing on display ":113".
Я искал, чтобы решить эту проблему, ссылаясь на эту ссылку https://stackoverflow.com/questions/17944234/xlib-extension-randr-missing-on-display-21-trying-to-run-headless-googl
Xvfb :113 -screen 0 1024x768x24 -extension RANDR &
когда я перезапущу тот же комманд, я получил Xlib: extension "RANDR" missing on display ":114".
и так далее
Как я мог решить эту проблему? Любое решение будет благодарен
2 ответа
Запустите xvfb-run как:
xvfb-run -a -s "-screen 0 1024x768x24" firefox http://google.com
Запуск Xvfb, а затем xvfb-run не приведет к запуску последнего воплощения на дисплее предыдущего Xvfb. Вам нужно установить переменную DISPLAY для приложения, которое вы хотите запустить на этом другом дисплее, если вы хотите запускать Xvfb вручную.
В любом случае вам не нужно расширение RANDR для Firefox. Не нужно изменять размер дисплея во время работы.
Если вы хотите явно установить свой номер дисплея, используйте что-то вроде:
xvfb-run -n 113 --server-args='-screen 0, 1024x768x24' firefox http://google.com > /dev/null &
Таким образом, вы можете сделать что-нибудь позже, основываясь на этом известном числе, например сказать x11grab или добавить другую программу на этот дисплей.
Расширение RANDR устанавливается по умолчанию, если вы используете последние пакеты. т.е. на сервере Ubuntu 16.04:
$sudo apt-get install xvfb
$Xvfb :99 -screen 0 1024x768x24 > /dev/null &
$ xdpyinfo -display :99 | grep "number of extensions" -A 25
number of extensions: 25
BIG-REQUESTS
Composite
DAMAGE
DOUBLE-BUFFER
DPMS
GLX
Generic Event Extension
MIT-SCREEN-SAVER
MIT-SHM
Present
**** RANDR ****
RECORD
RENDER
SECURITY
SGI-GLX
SHAPE
SYNC
X-Resource
XC-MISC
XFIXES
XINERAMA
XInputExtension
XKEYBOARD
XTEST
XVideo