使用 Firefox 运行 Xvfb

使用 Firefox 运行 Xvfb

我尝试使用此命令运行 headlesless 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".依此类推

我该如何解决这个问题?任何解决方案都将不胜感激

答案1

运行 xvfb-run 如下:

xvfb-run -a -s "-screen 0 1024x768x24" firefox http://google.com

运行 Xvfb,然后运行 ​​xvfb-run 不会导致后者在前一个 Xvfb 的显示器上运行。如果您希望手动运行 Xvfb,则需要为要在另一个显示器上运行的应用程序设置 DISPLAY 变量。

无论如何,您不需要 Firefox 的 RANDR 扩展。它在运行时不需要调整显示大小。

答案2

如果你想明确设置显示号码,请使用以下命令:

xvfb-run -n 113 --server-args='-screen 0, 1024x768x24' firefox http://google.com > /dev/null &

这样,您稍后就可以基于已知数字执行一些操作,例如说 x11grab 它或向该显示器添加另一个程序。

如果您使用的是最新的软件包,则会默认安装 RANDR 扩展。例如在 Ubuntu Server 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

相关内容