
Estoy intentando ejecutar un programa en una instancia de servidor Ubuntu 14.04 en Amazon, pero necesita una interfaz gráfica de usuario. Puedo instalar lunbuntu y usar x2go para ver el escritorio, pero tan pronto como hay un problema en mi conexión a Internet, la conexión de x2go se interrumpe y el entorno de escritorio parece cerrarse (junto con mi programa).
¿Hay alguna manera de que el escritorio se ejecute todo el tiempo en la instancia y use x2go para acceder a él (en lugar de que se cree cuando me conecto), de modo que el escritorio se ejecute incluso si pierdo la conexión? El objetivo de ejecutarlo en EC2 es tener una mayor estabilidad frente a mi conexión descuidada.
Después de muchas horas en este problema con toneladas de lectura y probando diferentes soluciones para configurar el archivo DISPLAY y xauth, parece que no puedo hacerlo funcionar. ¿A caso se puede hacer?
Respuesta1
Seguro. Hay dos opciones:
Si necesita acceder ocasionalmente al escritorio, utilice
vncserver
:sudo apt-get install tightvncserver
Nota: existen otras implementaciones, pero esta funcionará bien. Una vez que esté instalado, ejecútelo:
vncserver :1
La primera vez que lo ejecute, le pedirá una contraseña para acceder a su escritorio. Elegir uno. Ahora puede acceder a él utilizando cualquier cliente VNC.Nota: el protocolo VNC no está cifrado. Querrá hacer un túnel con algún cifrado (por ejemplo, reenvío de puerto SSH, o una VPN, o algo por el estilo), y proteger sus puertos con un firewall (en este ejemplo, ese es el puerto 5901).
Si no necesita acceder a la GUI, solo necesita ejecutarla, puede usarla
xvfb
dentro de unascreen
sesión:sudo apt-get install screen xvfb screen xvfb-run your_application
Esto inicia una sesión de pantalla, que inicia xvfb, que inicia su aplicación.
screen
es un programa que le permite iniciar algo, desconectarse de él y volver a conectarse más tarde. La desconexión se realiza mediantectrl
-a
,d
(es decir, mantener el control y a,libera ambos, presione d); la reconexión se realiza conscreen -r
.xvfb-run
es un script que comienzaXvfb
, que es la abreviatura de "X para Virtual Framebuffer". Habla el protocolo X11, pero no hace casi nada con él; Lo que sea que su aplicación envíe a ese servidor X no se muestra en ninguna pantalla. Sin embargo, sigue siendo un servidor X; Para poder usarlo, debes configurar algunas variables de entorno y hacer algo deXauthority
magia.xvfb-run
existe para que no tengas que hacerlo manualmente. Finalmente, después de todo lo configurado,xvfb-run
inicia su aplicación y la conectaXvfb
para gráficos y al terminal donde la inició (en este caso, su sesión de pantalla) para la salida estándar. Siempre que su aplicación se desconecte del servidor X,Xvfb
(y por extensión,xvfb-run
) se cerrará.
Como Xvfb
no te permite modificar cosas, requiere menos recursos y puede ser más rápido. Sin embargo, si necesita acceder a la GUI, esa no es una opción.