Как сделать Xvfb дисплей видимым?
Я запускаю селен через Xvfb на номер дисплея: 99, как это:
/ usr / bin / Xvfb: 99-ac-экран 0 1024x768x8 & дисплей экспорта=": 99" && java-jar / usr/lib/селен / Селен-сервер-автономный-2.24.1.сосуд -порт 4444
однако дисплей с номером, отличным от: 0, по умолчанию не отображается. Как сделать его видимым, чтобы увидеть, что делает selenium в браузере?
4 ответов
- это виртуальный. С мужской страницы Xvfb(1)
:
Xvfb-это X-сервер, который может работать на машинах без дисплея и физических устройств ввода. Он эмулирует тупой фреймбуфер, используя виртуальную память.
также на странице man:
Xvfb -pixdepths 3 27 -fbdir /var/tmp
Сервер будет прослушивать соединения как сервер номер 0, будет иметь конфигурацию экрана по умолчанию (один экран, 1280x1024x8), также будет поддерживать глубины pixmap 3 и 27, и будет использовать отображаемые в память файлы в /var/tmp для фреймбуфера.
xwud -in /var/tmp/Xvfb_screen0
Отображает экран 0 сервера, запущенного в предыдущем примере.
вы можете получить живой вид, запустив сервер VNC против дисплея Xvfb, например:
x11vnc -display :99 -localhost &
vncviewer :0
все, что вам нужно, это установить x11vnc
via:
sudo apt-get install x11vnc xvfb fluxbox
Дополнительно установите fluxbox, чтобы иметь простой оконный менеджер.
затем для настройки доступа к Xvfb для удаленного управления вы можете использовать X11 через SSH или VNC через SSH, например
export DISPLAY=:1
Xvfb :1 -screen 0 1024x768x16 &
fluxbox &
x11vnc -display :1 -bg -nopw -listen localhost -xkb
если ваш Xvfb прослушивает только localhost, вы можете настроить туннелирование на localhost, поэтому vncviewer может подключиться к localhost, чтобы получить удаленный контроль над сервером. Е. Г.
ssh -N -T -L 5900:localhost:5900 user@remotehost &
vncviewer -encodings 'copyrect tight zrle hextile' localhost:5900
или для прослушивания всех адресов с паролем используйте:
x11vnc -display :0.0 -usepw
чтобы установить пароль, запустите:x11vnc -storepasswd
.
посмотреть: дистанционное управление через SSH на странице Xvfb Wikipedia
или вы можете использовать следующую команду:
$ x11vnc -create -env FD_PROG=/usr/bin/fluxbox \
-env X11VNC_FINDDISPLAY_ALWAYS_FAILS=1 \
-env X11VNC_CREATE_GEOM=${1:-1024x768x16} \
-gone 'killall Xvfb' \
-bg -nopw
-
-create
запускает Xvfb -
X11VNC_FINDDISPLAY_ALWAYS_FAILS=1
делает его goto созданный сеанс Xvfb (Display:1
, а не:0
какой будет обычный рабочий стол) -
FD_PROG=/usr/bin/fluxbox
заставляет его запускать Fluxbox (Ubuntu один, должен иметь фоновый логотип Ubuntu) -
X11VNC_CREATE_GEOM=${1:-1024x768x16}
устанавливает экран на 16-битный цвет 1024x768 -
-gone
очищает, когда он выходит, так как в противном случае Xvfb остается позади (убийствоxvfb
убиваетfluxbox
)
посмотреть: Ubuntu Fluxbox GUI с x11vnc и Xvfb
простое решение также постоянно делать скриншоты программы, как это:
while /bin/true; do
DISPLAY=:99 import -window root ~/Pictures/xvfb_screenshot.png
sleep 0.1
done &
PID=$!
feh --reload 0.1 ~/Pictures/xvfb_screenshot.png 2>/dev/null
kill $PID
Примечание: требуется установить imagemagick и ФЭ