このコマンドSudo xvfb-run -a firefox http://google.com
を使用してheadlesless firefoxを実行しようとしているので、このエラーが発生します
(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".
などが得られます
どうすればこの問題を解決できますか?どんなソリューションでも感謝します
Xvfb-runを次のように実行します。
xvfb-run -a -s "-screen 0 1024x768x24" firefox http://google.com
Xvfbを実行してからxvfb-runを実行しても、前者のXvfbのディスプレイで後者のインカネーションが実行されることはありません。 Xvfbを手動で実行する場合は、他のディスプレイで実行するアプリのDISPLAY変数を設定する必要があります。
とにかくFirefoxのRANDR拡張機能は必要ありません。実行中にディスプレイのサイズを変更する必要はありません。
ディスプレイ番号を明示的に設定する場合は、次のようなものを使用します。
xvfb-run -n 113 --server-args='-screen 0, 1024x768x24' firefox http://google.com > /dev/null &
このようにして、x11grab itや別のプログラムをそのディスプレイに追加するなど、既知の数値に基づいて後で実行できます。
最新のパッケージを使用している場合、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