¿Cómo puedo ejecutar Firefox en CentOS sin pantalla? [cerrado]

16

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.

Eric
fuente
44
Me resulta muy extraño que una pregunta que se ha destacado 13 veces se cierre como "demasiado localizada".
harshath.jr
1
Exactamente, tengo un problema similar y tanto la pregunta como la respuesta fueron beneficiosas para mí. Definitivamente debe reabrirse en caso de que alguien encuentre otra solución.
Marek Rost el

Respuestas:

18

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.

cjc
fuente
¡Guauu! ¡Gracias! Eso funciona, aunque recibo TONELADAS de mensajes de error extraños de la pantalla. Publicaré una nueva pregunta sobre eso. En pocas palabras, a pesar de los mensajes, funciona y devuelve los datos que necesito. Muchas gracias, esta es solo la ayuda que necesitaba.
Eric
Por cierto, ¿cómo puedo "apagar" la pantalla Xvfb cuando haya terminado con todo?
Eric
Deberías poder simplemente matar el proceso. Si desea ser más sofisticado, puede buscar la configuración de scripts de inicio / detención (si el paquete no lo proporciona ya; podría: buscar en /etc/init.d cualquier script xvfb).
cjc
1
Gracias. He publicado una pregunta de seguimiento con respecto a los mensajes de información / error que estoy viendo, en caso de que esté buscando más puntos de reputación :-) serverfault.com/questions/363914/…
Eric
Esta respuesta es correcta, pero DEBE tener en cuenta que el exportcomando DEBE configurarse en la misma sesión de terminal que la terminal en la que ejecutará su firefox
TuyenNTA