qt.qpa.screen: QXcbConnection: Не удалось подключиться к дисплею

Вопрос или проблема

Не удается заставить работать CutyCapt. Я запускаю его на CentOS 7 VM. Я запускаю это непосредственно из командной строки и еще не использую скрипт.

# echo $DISPLAY
:0

# CutyCapt --url=https://hostname/abc --out=test.jpg
qt.qpa.screen: QXcbConnection: Could not connect to display
Could not connect to any X display.

Такая же проблема возникает, когда я запускаю его с xvfb-run

# xvfb-run --server-args="screen 0, 1920x1080x24" CutyCapt --url=https://hostname/abc --out=test.jpg
qt.qpa.screen: QXcbConnection: Could not connect to display :99
Could not connect to any X display.
/bin/xvfb-run: line 186: kill: (4853) - No such process

Я включил пересылку X11 в /etc/ssh/sshd_config, но это, похоже, не помогло.

# cat /etc/ssh/sshd_config |grep X11Forw
#X11Forwarding no
X11Forwarding yes

Есть какие-нибудь предложения, как это запустить?

Вам следует заменить X11Forwarding yes на ForwardX11 yes.

.

Ответ или решение

Проблема, с которой вы столкнулись, связана с тем, что QXcbConnection не может подключиться к дисплею. Это возникает из-за недостаточной настройки графической среды в вашей виртуальной машине CentOS 7, что ограничивает возможности запуска графических приложений, таких как CutyCapt. Рассмотрим, как можно решить эту проблему, основываясь на предоставленной информации и распространенных решениях для подобных случаев.

Теория

Для графического приложения, такого как CutyCapt, требуется наличие X-сервера, который предоставляет интерфейс для работы с графической средой. При получении ошибки QXcbConnection: Could not connect to display система сигнализирует о невозможности установить соединение с указанным дисплеем. Основной причиной может быть отсутствие активного X-сессии или неправильная настройка виртуального X-сервера, как в случае с использованием xvfb-run.

Пример

На вашем хосте CentOS 7 вы проверяете значение переменной окружения $DISPLAY, которое показывает :0, указывая на отсутствие явного подключения к X-серверу. При запуске с xvfb-run вы также получаете ошибку: Could not connect to display :99. Это свидетельствует о том, что Xvfb, виртуальный X-сервер, не запускается корректно или не определяется системой.

Применение

Чтобы устранить данную проблему, можно выполнить следующие шаги:

  1. Убедитесь, что X-серия активна:

    • Убедитесь в наличии установленного X-сервера (например, Xorg) и графической среды, даже если она минимальна.
    • Попробуйте запустить простое графическое приложение, чтобы проверить работоспособность X-сервера.
  2. Проверьте конфигурацию xvfb-run:

    • Убедитесь, что Xvfb установлен и корректно работает.
    • Попытайтесь запустить xvfb-run с другими параметрами, например:
      xvfb-run --server-args="-screen 0 1024x768x24" CutyCapt --url=https://hostname/abc --out=test.jpg
  3. Использование X11 Forwarding:

    • Проверьте файл конфигурации /etc/ssh/sshd_config. Вы уже включили X11Forwarding yes, что корректно. Однако важно также перезапустить SSH-сервер:
      sudo systemctl restart sshd
    • При подключении через SSH убедитесь, что используется флаг -X для активации X11 Forwarding:
      ssh -X user@hostname
  4. Дополнительная отладка:

    • Проверьте журналы ошибок и системные логи, чтобы выявить другие возможные источники ошибок.
    • Используйте команду xhost +localhost для разрешения подключения к X-серверу от локальных клиентов.

Применение вышеописанных шагов поможет наладить подключение к дисплею и корректную работу CutyCapt в вашей текущей среде CentOS 7.

Оцените материал
Добавить комментарий

Капча загружается...