null xserver

A/dev/null equivilent para DISPLAY cuando la pantalla es solo ruido



xserver (5)

¿Se puede ejecutar una máquina virtual en la máquina de destino? Entonces podrías configurar tu DISPLAY para eso. O puedes probar vnc (actualmente en una máquina que no lo permite o lo intentaría ...).

Estoy ejecutando una aplicación java que crea una visualización de algunas de las cosas que está haciendo, mientras lo hace. Sin embargo, quiero ejecutar esto en un script que no tenga una pantalla para adjuntar. En el entorno actual, ni siquiera hay un conjunto de variables de entorno DISPLAY. Intenté simplemente configurar mi PANTALLA en: 0.0. Pero eso no existe. Realmente no me importa la pantalla. Solo quiero que la aplicación procese los archivos en silencio.

Ya que no puedo simplemente apagar la pantalla (no mi aplicación), me quedo con tratar de evitar la necesidad de la pantalla.

¿Hay un agujero negro al que pueda enviar la PANTALLA? un equivalente a / dev / null?

Busqué un poco en la web, pero las palabras que se me ocurrieron usar: "display" "null", "indignar", etc. son todas dos genéricas para obtener una respuesta.

Este es el medio de un script más grande, por lo que quiero que el resto de la salida a la salida estándar esté disponible.


Hay un servidor X sin cabeza llamado Xvfb . Básicamente es lo que necesitas, ya que acepta X clientes pero básicamente no hace nada con los datos de ellos. Desde esa página enlazada (ligeramente parafraseada):

Xvfb , el framebuffer virtual X, es un servidor de pantalla que implementa el protocolo del servidor de pantalla X11.

A diferencia de otros servidores de pantalla, Xvfb realiza todas las operaciones gráficas en la memoria sin mostrar ningún resultado de pantalla.

Desde el punto de vista del cliente, actúa exactamente como cualquier otro servidor de pantalla 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 una pantalla o cualquier dispositivo de entrada. Solo se necesita una capa de red.

Si no puede encontrar eso, entonces otra posibilidad sería usar una PC de repuesto con una instalación completa de CygWin. CygWin viene con un servidor X completo al que puedes conectar tu aplicación (y simplemente ignorarlo). Incluso podría configurarlo como el DISPLAY corporativo / dev / null.

Pero primero miraría en Xvfb.


Puede utilizar Xvfb, como se indicó anteriormente. De esa manera, nunca verá la salida (aunque puede usar una herramienta para tomar capturas de pantalla).

http://en.wikipedia.org/wiki/Xvfb http://packages.debian.org/sid/xvfb

O puede configurar un servidor VNC. En Linux, un servidor VNC se implementa como un servidor X especial al que se puede acceder a través de VNC, en lugar de mostrarse en un monitor local. Eso le da un servidor X sin cabeza, con la ventaja adicional de que puede conectarse a través de VNC en caso de que necesite ver lo que está pasando.

http://www.tightvnc.com/vncserver.1.html

vncserver es un buen script de envoltorio para VNC (ajustado), lo que facilita el inicio de un servidor VNC. La mayoría de las distribuciones deberían instalarlo por defecto.


Respuesta corta, use:

xvfb-run JAVA_COMMAND_LINE

Dependiendo de su versión y versión de Linux, puede haber una línea que deba cambiar en xvfb-run para que todo funcione.


Si se trata de un programa java, puede utilizar el modo sin cabeza para ejecutar la aplicación.

Intenta ejecutarlo con el parámetro -Djava.awt.headless=true , como este si es un archivo jar:

java -Djava.awt.headless=true -jar jarfile.jar

Más sobre el modo sin cabeza ...