Как запустить Chromium-браузер в автономном режиме? На дисплее отсутствует расширение «RANDR»: «99»

Ubuntu

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 14.04.4 LTS
Release:    14.04
Codename:   trusty

Хром

chromium-browser --version
Chromium 48.0.2564.116 Ubuntu 14.04

Я работаю с веб-приложением Flask на localhost и хочу просматривать его в режиме без головы.

Вслед за этим лидирует в стеке потока

Предварительное условие

$ apt-get install xvfb imagemagick

X буфер виртуального кадра xvfb-run

Запуск Хром ] со следующими параметрами

--allow-running-insecure-content    // trying to get passed
--ignore-certificate-errors         // the self-signed certs
--ignore-urlfetcher-cert-requests   //
--disable-gpu                       
--no-sandbox                        

команда

 xvfb-run --server-args='-screen 0, 1024x768x24' chromium-browser --allow-running-insecure-content --ignore-certificate-errors --ignore-urlfetcher-cert-requests  --disable-gpu --no-sandbox https://admin:password@localhost

Xlib: расширение «RANDR» отсутствует на дисплее «: 99».

[2596:2596:0407/170544:ERROR:browser_main_loop.cc(206)] Running without the SUID sandbox! See https://code.google.com/p/chromium/wiki/LinuxSUIDSandboxDevelopment for more information on developing with the sandbox on.
Xlib:  extension "RANDR" missing on display ":99".
Xlib:  extension "RANDR" missing on display ":99".
[2596:2596:0407/170544:ERROR:desktop_window_tree_host_x11.cc(892)] Not implemented reached in virtual void views::DesktopWindowTreeHostX11::InitModalType(ui::ModalType)
[2596:2596:0407/170545:ERROR:logging.h(808)] Failed to call method: org.freedesktop.DBus.ObjectManager.GetManagedObjects: object_path= /: org.freedesktop.DBus.Error.UnknownMethod: Method "GetManagedObjects" with signature "" on interface "org.freedesktop.DBus.ObjectManager" doesn't exist
[2596:2596:0407/170545:ERROR:logging.h(808)] Failed to call method: org.freedesktop.DBus.ObjectManager.GetManagedObjects: object_path= /: org.freedesktop.DBus.Error.UnknownMethod: Method "GetManagedObjects" with signature "" on interface "org.freedesktop.DBus.ObjectManager" doesn't exist
[2596:2596:0407/170629:ERROR:chrome_browser_main_extra_parts_x11.cc(62)] X IO error received (X server probably went away)

Без --disable-gpu и --no-sandbox

[3122:3122:0407/172728:ERROR:sandbox_linux.cc(338)] InitializeSandbox() called with multiple threads in process gpu-process
[3062:3099:0407/172728:ERROR:browser_gpu_channel_host_factory.cc(144)] Failed to create channel.

ОБНОВЛЕНИЕ 20160407

$ sudo Xvfb :1 -screen 0 1024x768x24 -ac +extension GLX +extension RANDR +render -noreset &
$ export DISPLAY=":1"
$ chromium-browser --allow-running-insecure-content --ignore-certificate-errors --ignore-urlfetcher-cert-requests  --disable-gpu --no-sandbox https://admin:password@localhost

Получение

[3413:3413:0407/174058:ERROR:browser_main_loop.cc(206)] Running without the SUID sandbox! See https://code.google.com/p/chromium/wiki/LinuxSUIDSandboxDevelopment for more information on developing with the sandbox on.
[3413:3413:0407/174058:ERROR:browser_main_loop.cc(256)] Gtk: cannot open display: :1
[3422:3422:0100/000000:ERROR:zygote_linux.cc(674)] write: Broken pipe

Также пробовали с google-chrome

wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add - 
sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
sudo apt-get update 
sudo apt-get install google-chrome-stable

Версия

google-chrome --version
Google Chrome 49.0.2623.110 

и я получаю те же ошибки, включая extension "RANDR" missing on display ":99".

Похожие посты

в любом случае -to-start-google-chrome-in-headless-mode

как добавить отсутствующее randr-расширение

неспособный к пуску-хром-убунту

7
задан 23 May 2017 в 15:39

1 ответ

Я сделал что-то подобное на дистрибутиве Linux не-Ubuntu. Для тестирования я буду использовать свой HTPC под управлением Ubuntu (14.04), чтобы удостовериться, что это работает там также с минимальными изменениями.

Информация о дистрибутиве

htpc@HTPC:[~]:$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 14.04.4 LTS
Release:        14.04
Codename:       trusty

Удостоверяясь дисплей, который мы хотим использовать, еще не присутствует

htpc@HTPC:[~]:$ DISPLAY=:1 xset q
xset:  unable to open display ":1"

Запуск Xvfb

Sudo не нужен. Я выполняю его как тот же пользователь, который также запускает браузер.

Xvfb :1 -screen 0 '1280x1024x16' -ac &> /dev/null &

Удостоверьтесь, что дисплей присутствует и принадлежит себе

htpc@HTPC:[~]:$ ls -l /tmp/.X11-unix/X1
srwxrwxrwx 1 htpc htpc 0 Apr 15 11:37 /tmp/.X11-unix/X1

Экспортируйте текущий дисплей в:1, которые мы просто создали.

Мы можем также добавить ДИСПЛЕЙ =:1 перед каждой командой, мы хотим работать на дисплее. Однако экспорт удостоверяется, что это будет сохранено для текущей сессии, таким образом, Вы не должны будете обеспечивать его для каждой команды.

export DISPLAY=:1

Другая проверка для проверки экран присутствует и работает (и также что бит экспорта работает),

htpc@HTPC:[~]:$ xset q
Keyboard Control:
  auto repeat:  on    key click percent:  0    LED mask:  00000000
  XKB indicators:
    00: Caps Lock:   off    01: Num Lock:    off    02: Scroll Lock: off
    03: Compose:     off    04: Kana:        off    05: Sleep:       off
    06: Suspend:     off    07: Mute:        off    08: Misc:        off
    09: Mail:        off    10: Charging:    off    11: Shift Lock:  off
    12: Group 2:     off    13: Mouse Keys:  off
  auto repeat delay:  660    repeat rate:  25
  auto repeating keys:  00ffffffdffffbbf
                        fadfffefffedffff
                        9fffffffffffffff
                        fff7ffffffffffff
  bell percent:  50    bell pitch:  400    bell duration:  100
Pointer Control:
  acceleration:  2/1    threshold:  4
Screen Saver:
  prefer blanking:  yes    allow exposures:  yes
  timeout:  600    cycle:  600
Colors:
  default colormap:  0x20    BlackPixel:  0x0    WhitePixel:  0xffff
Font Path:
  /usr/share/fonts/X11/misc,/usr/share/fonts/X11/Type1,built-ins
DPMS (Energy Star):
  Display is not capable of DPMS

Дополнительный шаг отладки

Я буду выполнять nc, который распечатает verbosely, если Chrome попытается связаться с ним. Таким образом, мы будем знать, работает ли эта установка. Иначе должен выполнить сервер VNC на том же дисплее и подключении к нему так, Вы видите то, что делает браузер и является ли Chrome, запускает правильно. Который я рекомендовал бы! Chrome мог бы давать различные ошибки в UI, который не может быть замечен в консоли в Вашем случае.

htpc@HTPC:[~]:$ echo Testing... | nc -l 9999 -v &
[2] 8416
htpc@HTPC:[~]:$ Listening on [0.0.0.0] (family 0, port 9999)

Время для запуска Chrome!

htpc@HTPC:[~]:$ google-chrome --disable-gpu 'http://localhost:9999' &
[3] 8512
htpc@HTPC:[~]:$ [8512:8512:0415/115726:ERROR:browser_main_loop.cc(271)] Gtk: Locale not supported by C library.
    Using the fallback 'C' locale.
Xlib:  extension "RANDR" missing on display ":1".
Xlib:  extension "RANDR" missing on display ":1".
Connection from [127.0.0.1] port 9999 [tcp/*] accepted (family 2, sport 40050)
GET / HTTP/1.1
Host: localhost:9999
Connection: keep-alive
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.75 Safari/537.36
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8

Как Вы видите выше ошибки RANDR, она все еще представляет, просто игнорирует его. Ниже его Вы видите Запрос HTTP, сделанный Chrome (см., что Агент пользователя кусает), к процессу nc мы запустили. Кажется, что Chrome запускает как ожидалось и посещает обеспеченный URL.

Попытка того же с Хромом

htpc@HTPC:[~]:$ chromium-browser --disable-gpu 'http://localhost:9999' &
[3] 13108
htpc@HTPC:[~]:$ Xlib:  extension "RANDR" missing on display ":1".
Xlib:  extension "RANDR" missing on display ":1".
[13108:13108:0415/145854:ERROR:logging.h(813)] Failed to call method: org.freedesktop.DBus.ObjectManager.GetManagedObjects: object_path= /: org.freedesktop.DBus.Error.UnknownMethod: Method "GetManagedObjects" with signature "" on interface "org.freedesktop.DBus.ObjectManager" doesn't exist

Connection from [127.0.0.1] port 9999 [tcp/*] accepted (family 2, sport 40542)
[13108:13108:0415/145854:ERROR:logging.h(813)] Failed to call method: org.freedesktop.DBus.ObjectManager.GetManagedObjects: object_path= /: org.freedesktop.DBus.Error.UnknownMethod: Method "GetManagedObjects" with signature "" on interface "org.freedesktop.DBus.ObjectManager" doesn't exist

GET / HTTP/1.1
Host: localhost:9999
Connection: keep-alive
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/49.0.2623.108 Chrome/49.0.2623.108 Safari/537.36
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8

Выполнение того же имеет в значительной степени тот же эффект с некоторыми другими дополнительными предупреждениями. Агентом пользователя является Хром как ожидалось.

Дополнительный

Если Вы хотите поддерживать все это в рабочем состоянии, не забывают давать отрицать команду для каждого процесса и поддерживать в рабочем состоянии их в фоновом режиме, чтобы удостовериться, что они не уничтожаются, когда Вы выходите из системы. Посмотрите, что http://www.cyberciti.biz/faq/unix-linux-disown-command-examples-usage-syntax/ для большего количества информации об отрицает.

11
ответ дан 24 May 2017 в 01:39
  • 1
    Я получил umount:/media/alex/DBAN: точка монтирования, не найденная, когда я выполнил ту команду, Когда я открыл gparted, фантомный диск, исчезла из средства просмотра файла, целый gparted был открыт, затем вновь появился, когда я закрыл его – alexwennerberg 15 August 2017 в 15:20

Другие вопросы по тегам:

Похожие вопросы: