У меня такая же проблема, и я думаю, что это на самом деле невозможно.
Проблема в том, что версии Firefox / Chrome, работающие на OSX, предназначены для OSX, а не для "простого" X11 - так что даже если вы запускаете сервер X11 и используете xvfb / xvnc / любой другой и передаете в DISPLAY=: 123, Firefox / Chrome не волнует, потому что они не основаны на X, они основаны на углероде / какао.
Вы можете подтвердить это самостоятельно следующим образом:
- Запустите сервер X11 (из центра внимания)
- в новом xterm, введите «xhost +» (просто чтобы убедиться)
- xvfb -br -screen 0 1280x1024x24: 123123 &
- Теперь у вас есть новый кадровый буфер на дисплее 123123 - запустите там xterm:
- DISPLAY =: 123123 xterm &
- На главном экране ничего не появилось, потому что этот новый xtermв фоновом режиме.Проверьте это там:
- xlsclients -display: 123123
- Вы увидите одну запись, xterm, которую вы там породили.
- Теперь попробуйте ее с помощью браузера:
- DISPLAY =: 123123 /Applications/Firefox.app/Contents/MacOS/firefox
... и Firefox по-прежнему отображается на главном экране.
Вы можетепроверьте это с другими вещами - если вы выполните «DISPLAY =: 123123 xcalc», xcalc не появится на главном экране, но будет отображаться в списке вещей из xlsclients, потому что он основан на X.
Но если вы попробуете "DISPLAY =: 123123 / Applications / Calculator / Contents / MacOS / Calculator", калькулятор OSX появится на главном экране, потому что он не основан на X.
(еще одно возможное решение - использовать сервер селена, но наше веб-приложение ломает сервер селена, так что это не вариант для нас - в конце концов, я переключился на использование установки Jenkins на основе Windows, где селена иХромедрайвер отлично работает при запуске от Дженкинс).