Xvfb

Xvfb or X virtual framebuffer is a display server implementing the X11 display server protocol. In contrast to other display servers, Xvfb performs all graphical operations in virtual memory without showing any screen output. From the point of view of the client, it acts exactly like any other X display server, serving requests and sending events and errors as appropriate. However, no output is shown. This virtual server does not require the computer it is running on to have any kind of graphics adapter, a screen or any input device. Only a network layer is necessary.
An alternative to Xvfb is Xorg with dummy devices. Xvnc can also create a virtual display.
As of 2016, Xvfb was slated to be replaced by in X.org 7.8.
Usage scenarios.
Xvfb is primarily used for testing:
Usage examples.
Screenshot example.
As an example, the following sequence of commands runs a virtual framebuffer X server as display :1, runs a program on it, and captures the virtual screen in the file image.png using the import command of ImageMagick:
 Xvfb :1 &
 xv -display :1 &
 import -display :1 -window root image.png
The result can be shown by running the ImageMagick display program (codice_1) or xv (codice_2). The program xvfb-run is often used to automate the process of finding an available display and managing authentication.
 xvfb-run command
Remote control over SSH.
Xvfb is also used for remote control. VNC over SSH is slightly faster than X11 over SSH. In this case, Xvfb is often combined with a lightweight window manager (such as Fluxbox or Openbox) and a VNC server such as X11vnc. A possible sequence of commands to start this on the server is:
 export DISPLAY=:1
 Xvfb :1 -screen 0 1024x768x24 &
 fluxbox &
 x11vnc -display :1 -bg -nopw -listen localhost -xkb
The next step is to fire up a SSH client such as PuTTY with tunneling to localhost port 5900 enabled. A vncviewer can then connect to localhost to get remote control over the server.
 ssh -N -T -L 5900:localhost:5900 user@remotehost &
 vncviewer -encodings 'copyrect tight zrle hextile' localhost:5900
x11vnc's man page also contains instructions.
Xvnc (not to be confused with x11vnc) is very similar to Xvfb.