Cómo iniciar una aplicación de forma remota, para que la GUI se muestre localmente

Cómo iniciar una aplicación de forma remota, para que la GUI se muestre localmente

Esta es una pregunta para principiantes, lo sé... pero he buscado y me estoy frustrando. Conozco bastante bien Lunux, pero nunca he tenido que lidiar con XServer.

Pregunta 1:

Utilizo SSH desde OSX a una máquina de escritorio UBUNTU 14.04 como usuario alfa.

El usuario alfa también inicia sesión localmente en ese escritorio.

Quiero ejecutar (a través de mi terminal) una aplicación que debería mostrarse en la máquina UBUNTU (para que sea visible en la pantalla local del usuario que inició sesión localmente).

Hoy me sale este error cuando hago esto desde la terminal OSX:

15:21:20:157 AWT-EventQueue-0: Error
java.awt.HeadlessException: 
No X11 DISPLAY variable was set, but this program performed an operation     which requires it.
at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:207)
at java.awt.Window.<init>(Window.java:535)
at java.awt.Frame.<init>(Frame.java:420)
<etc>

NOTA: Cuando lo hago desde la terminal local (en UBUNTU) funciona como debería, así que no hay nada malo con el programa.

Pregunta 2:

En caso de que la máquina UBUNTU no tuviera cabeza, ¿cómo podría desviar las ventanas a otra máquina, por ejemplo mi Mac?

gracias pedro

Respuesta1

Para su segunda pregunta: agregue el parámetro -X (o -Y para una conexión confiable) cuando se conecte con ssh y asegúrese de tener X11 en su mac. Ejemplo:

ssh -X [email protected]

Eso enrutaría sus ventanas X11 para que se muestren en su servidor X local en su mac.

Ver:https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/ssh.1.html

Para la primera pregunta:

PANTALLA y AUTORIDAD

Un programa X necesita dos datos para conectarse a una pantalla X.

  • Necesita la dirección de la pantalla, que normalmente es :0 cuando inicia sesión localmente o :10, :11, etc. cuando inicia sesión de forma remota (pero el número puede cambiar dependiendo de cuántas conexiones X estén activas). ). La dirección de la pantalla normalmente se indica en la variable de entorno DISPLAY.

  • Necesita la contraseña para la pantalla. Las contraseñas de visualización de X se denominan cookies mágicas. Las cookies mágicas no se especifican directamente: siempre se almacenan en archivos de autoridad X, que son una colección de registros del formato "display :42 has cookie 123456". El archivo de autoridad X normalmente se indica en la variable de entorno XAUTHORITY. Si no se establece $XAUTHORITY, los programas usan ~/.Xauthority.

Extraído de: https://unix.stackexchange.com/a/10126

Consulte esa publicación para obtener una excelente explicación.

Respuesta2

De forma remota, deberá configurar la pantalla para usar exportando la variable ambiental DISPLAY.

p.ej.export DISPLAY=:0

Para su segunda pregunta, la forma más sencilla sería configurar el servidor VNC en ubuntu y utilizar un cliente VNC para conectarse desde su Mac.

Cómo:http://www.howtoforge.com/how-to-install-vnc-server-on-ubuntu-14.04

Respuesta3

1) No estoy seguro, ¿tal vez intentarlo export DISPLAY=0?

2) Para mostrar la GUI en la máquina que estás usando, ejecuta SSH con la -Yopción.

información relacionada