stringtranslate.com

Xvfb

Xvfb o X virtual framebuffer es un servidor de visualización que implementa el protocolo de servidor de visualización X11 . A diferencia de otros servidores de visualización, Xvfb realiza todas las operaciones gráficas en la memoria virtual sin mostrar ninguna salida de pantalla. Desde el punto de vista de la aplicación cliente X , actúa exactamente como cualquier otro servidor de visualización X , atendiendo solicitudes y enviando eventos y errores según corresponda. Sin embargo, no se muestra ninguna salida. Este servidor virtual no requiere que la computadora en la que se ejecuta tenga algún tipo de adaptador gráfico , una pantalla o cualquier dispositivo de entrada . Solo es necesaria una capa de red . Xvfb admite varias extensiones del protocolo X , como la composición y la compatibilidad con OpenGL GLX a través de Mesa . [1]

Escenarios de uso

Xvfb se utiliza principalmente para probar:

  1. Dado que comparte código con el servidor X real, se puede utilizar para probar las partes del código que no están relacionadas con el hardware específico.
  2. Se puede utilizar para probar clientes en diversas condiciones que de otro modo requerirían una variedad de hardware diferente; por ejemplo, se puede utilizar para probar si los clientes funcionan correctamente en profundidades o tamaños de pantalla que rara vez son compatibles con el hardware.
  3. Ejecución de clientes en segundo plano. ( Se puede usar el programa xwd o un programa similar para capturar una pantalla para ver realmente el resultado)
  4. En general, ejecutar programas que requieren que un servidor X esté activo incluso cuando no muestran nada con él (por ejemplo, automatización de pruebas de navegador como Selenium [2] o Jenkins , [3] informes HTML de Clover de Jira , etc.)

Ejemplos de uso

Ejemplo de captura de pantalla

A modo de ejemplo, la siguiente secuencia de comandos ejecuta un servidor X con framebuffer virtual como display :1 , ejecuta un programa (xclock) en él y captura la pantalla virtual en el archivo image.xwd utilizando el comando xwd:

 Xvfb  :1 y xclock -display :1 y xwd -display :1 -silent -root -out imagen.xwd            

El resultado se puede mostrar ejecutando el programa xwud ( xwud -in image.xwd).

El programa xvfb-run se utiliza a menudo para automatizar el proceso de búsqueda de una pantalla disponible y gestionar la autenticación:

 Comando xvfb-run 

Control remoto por SSH

Xvfb también se utiliza para control remoto. VNC sobre SSH puede ser más rápido que X11 sobre SSH, [4] reduciendo especialmente la latencia en Internet. [5] En este caso, Xvfb se combina a menudo con un gestor de ventanas ligero (como Fluxbox o Openbox ) y un servidor VNC como X11vnc . Una posible secuencia de comandos para iniciar esto en el servidor es:

 exportar DISPLAY = :1 Xvfb " $DISPLAY " -pantalla 0 1024x768x24 & fluxbox & x11vnc -display " $DISPLAY " -bg -nopw -listen localhost -xkb                 

El siguiente paso es iniciar un cliente SSH como PuTTY con la tunelización al puerto local 5900 habilitada. Luego, un vncviewer puede conectarse al puerto local para obtener control remoto sobre el servidor.

 ssh  -N  -T  -L 5900 :localhost:5900 usuario@remotehost & vncviewer -encodings 'copyrect tight zrle hextile' localhost:5900       

La página del manual de x11vnc también contiene instrucciones.

Xvnc (que no debe confundirse con x11vnc) es muy similar a Xvfb.

Véase también

Referencias

  1. ^ "904851 – xvfb-run glxinfo falla". bugzilla.redhat.com . -- Creo que tampoco obtendrás GLX si no tienes mesa-dri-drivers instalado en el entorno chroot. -- Gracias. Eso ayudó.
  2. ^ "Cómo ejecutar tus pruebas sin interfaz gráfica con Xvfb | Elemental Selenium". elementalselenium.com . 18 de junio de 2024.
  3. ^ "Xvfb". plugins.jenkins.io . 14 de julio de 2021.
  4. ^ "Aceleración del rendimiento de Remote X". dav.lbl.gov .
  5. ^ "VNC: una alternativa más rápida a X11 - Base de conocimiento HECC". www.nas.nasa.gov .

Enlaces externos