18 votos

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

Estoy intentando ejecutar el navegador Firefox GUI en un servidor CentOS headless para realizar algunas pruebas web.

No necesito ver la salida gráfica, porque uso Selenium servidor API para controlar la entrada del navegador e inspeccionar la salida.

La configuración se probó con éxito en un ordenador Mac de sobremesa. Sin embargo, no se ejecuta en mi servidor VPS CentOS sin cabeza con el siguiente mensaje "Error: no hay pantalla especificada". (Lo que tiene sentido, ya que es sólo un servidor sentado en un estante en algún lugar).

¿Cómo puedo hacer que Firefox se ejecute sin pantalla, para que Selenium pueda interactuar con él? O, más ampliamente, ¿cómo se ejecutan las aplicaciones con interfaz gráfica de usuario en un servidor Linux cuando no hay pantalla?

Me he dado cuenta de que Firefox tiene esta opción de línea de comandos:

X11 options
  --display=DISPLAY  X display to use

Lamentablemente no sé nada sobre X11 o pantallas bajo CentOS así que no sé qué especificar en la línea de comandos, o si esto ayudaría.

5 votos

Me parece muy extraño que una pregunta que ha sido marcada con una estrella 13 veces se cierre como "demasiado localizada".

3 votos

Exactamente, estoy teniendo un problema similar y tanto la pregunta como la respuesta me beneficiaron. Definitivamente hay que reabrirla por si alguien encuentra otra solución.

19voto

cjc Puntos 17092

Usa Xvfb. Te da un servidor X que no requiere conexión a una pantalla física.

(Así, en CentOS, harías algo como "yum install xorg-x11-server-Xvfb").

A continuación, puede iniciarlo en la pantalla ":1" con el comando "/ruta/en/que/instalado/Xvfb :1 -pantalla 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 lanzar Firefox, es necesario hacer accesible la pantalla, lo que se hace mediante el comando Exportar - es decir, "exportar DISPLAY=:1", apuntando a cualquier host que sea apropiado.

0 votos

¡Vaya! ¡Gracias! Eso funciona - aunque estoy recibiendo TONELADAS de mensajes de error extraños de la pantalla. Voy a publicar una nueva pregunta acerca de esos. En definitiva, a pesar de los mensajes, está funcionando y devolviendo los datos que necesito. Muchas gracias, esto es justo la ayuda que necesitaba.

0 votos

Por cierto ¿cómo puedo "apagar" la pantalla del Xvfb cuando haya terminado con todo?

0 votos

Deberías poder simplemente matar el proceso. Si quieres ser más sofisticado, puedes buscar la configuración de start/stop scripts (si el paquete no lo proporciona ya; podría: busca en /etc/init.d cualquier xvfb scriptsscriptscripts).

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: