Estoy tratando de ejecutar el navegador Firefox GUI en un servidor CentOS sin cabeza para realizar algunas pruebas web.
No necesito ver la salida gráfica, porque uso la API del servidor Selenium para controlar la entrada del navegador e inspeccionar la salida.
La configuración se probó con éxito en una computadora Mac de escritorio. Sin embargo, no se ejecuta en mi servidor VPS CentOS sin cabeza con el siguiente mensaje "Error: no se especificó ninguna pantalla". (Lo cual tiene sentido, ya que es solo un servidor sentado en un estante en algún lugar).
¿Cómo puedo hacer que Firefox se ejecute sin una pantalla para que Selenium pueda interactuar con él? O, en términos más generales, ¿cómo las personas ejecutan aplicaciones solo GUI en un servidor Linux cuando no hay pantalla?
He notado que Firefox tiene esta opción de línea de comando:
X11 options
--display=DISPLAY X display to use
Desafortunadamente, no sé nada sobre X11 o las pantallas en CentOS, así que no sé qué especificar en la línea de comando, o si esto ayudaría.
Respuestas:
Usa Xvfb. Le proporciona un servidor X que no requiere conexión a una pantalla física.
(Entonces, en CentOS, haría algo como "yum install xorg-x11-server-Xvfb").
Luego puede iniciarlo en la pantalla ": 1" con el comando "/ ruta / en / que / instalado / Xvfb: 1 -screen 0 1024x768x24 &". Esto creará una pantalla con resolución 1027x768 y profundidad 24. El uso de "&" hará que el comando se ejecute en segundo plano.
Antes de iniciar Firefox, debe hacer que la pantalla sea accesible, lo que se hace mediante el comando Exportar, es decir. "export DISPLAY =: 1", que apunta a cualquier host que sea apropiado.
fuente
export
comando DEBE configurarse en la misma sesión de terminal que la terminal en la que ejecutará su firefox