Estoy usando el reenvío X11 sshpara ejecutar aplicaciones de Linux en mi caja de Windows, y cuando la red se cae, pierde todo lo que se estaba ejecutando. ¿Hay algo similar screenpara X11?
Aclarar. ¿Por qué no solo usar screen? O XVNC? Ejecutas la pantalla en la máquina Linux y cuando tu red cae, vuelve a conectarte y usa screen -DRpara volver a conectar la sesión.
nix
@nix ¿Funcionará eso para las aplicaciones X?
Michael Mrozek
2
@nix No creo que screenfuncione para aplicaciones gui.
Abdullah Jibaly
Por supuesto, la pantalla requeriría ejecutarse desde un xterm.
También está WinSwitch , que de un vistazo parece que integra xpra y otro software relacionado.
Gilles 'SO- deja de ser malvado'
6
Estás buscando VNC . El principio es algo similar a la pantalla: ejecuta un servidor VNC (el SCREENproceso de fondo ) y un cliente VNC (el screenproceso de primer plano ). El servidor VNC es un servidor X, por lo que puede ejecutar aplicaciones X en él.
Ejecute un servidor VNC en el cuadro de Linux y un cliente en el cuadro de Windows. Tiene varias implementaciones para elegir; Una posibilidad es TightVNC . TightVNC está en muchas distribuciones de Linux (si no está en la suya, instálelo o elija una implementación diferente), y hay un cliente de Windows.
Si sus dos máquinas no están muy cerca de la red, si hay un cortafuegos o un riesgo de espionaje entre ellas, deberá hacer un túnel del tráfico VNC a través de ssh. Haga que ssh reenvíe el puerto local 5900 al puerto remoto 5900 (5900 corresponde a la pantalla :0, use 5901 para :1, etc.).
En realidad, puedes reenviar X a screen. Lo único que debe hacer es configurar el $DISPLAYen la screenventana para que sea el mismo lado exterior.
Procedimiento
luego ssh -Xen la máquina remota, escriba
$ echo $DISPLAY
y copie el resultado, generalmente localhost:N.0. Luego ingrese screen, en la screenventana local ,
$ export DISPLAY=localhost:N.0
Después de esto, ejecutará cualquier Xprograma requerido dentro de la ventana de la pantalla.
NOTA: para cada screenventana, las variables de entorno son independientes. Entonces, para cada ventana, es posible que deba configurarla por separado.
Hola Chong, bienvenido a unix.SE. Dado que los detalles de la solución que vincula son simples, es mejor volver a escribirlos explícitamente aquí. De esta manera, la respuesta se conserva si algo le sucede a la publicación en askubuntu.com. Por supuesto, también es una buena idea mantener el enlace presente porque ayuda a obtener su material.
drs
2
Probé esta solución, pero no puedo cerrar mi sesión ssh sin matar la aplicación X en ejecución. Esto de alguna manera anula su propósito ... ¿Cómo debo desconectarme del host remoto dejando la aplicación remota en ejecución?
screen
? OXVNC
? Ejecutas la pantalla en la máquina Linux y cuando tu red cae, vuelve a conectarte y usascreen -DR
para volver a conectar la sesión.screen
funcione para aplicaciones gui.Respuestas:
Xpra o la bifurcación de Xpra afirman ser exactamente eso:
No lo he usado en mucho tiempo, pero funcionó bastante bien cuando lo probé. Inicia el servidor en la máquina remota:
Luego se conecta al servidor desde su máquina local:
Y ahora todo lo que se muestra en la pantalla X 13 en la máquina remota aparecerá localmente:
fuente
Estás buscando VNC . El principio es algo similar a la pantalla: ejecuta un servidor VNC (el
SCREEN
proceso de fondo ) y un cliente VNC (elscreen
proceso de primer plano ). El servidor VNC es un servidor X, por lo que puede ejecutar aplicaciones X en él.Ejecute un servidor VNC en el cuadro de Linux y un cliente en el cuadro de Windows. Tiene varias implementaciones para elegir; Una posibilidad es TightVNC . TightVNC está en muchas distribuciones de Linux (si no está en la suya, instálelo o elija una implementación diferente), y hay un cliente de Windows.
Si sus dos máquinas no están muy cerca de la red, si hay un cortafuegos o un riesgo de espionaje entre ellas, deberá hacer un túnel del tráfico VNC a través de ssh. Haga que ssh reenvíe el puerto local 5900 al puerto remoto 5900 (5900 corresponde a la pantalla
:0
, use 5901 para:1
, etc.).fuente
En realidad, puedes reenviar X a
screen
. Lo único que debe hacer es configurar el$DISPLAY
en lascreen
ventana para que sea el mismo lado exterior.Procedimiento
luego
ssh -X
en la máquina remota, escribay copie el resultado, generalmente
localhost:N.0
. Luego ingresescreen
, en lascreen
ventana local ,Después de esto, ejecutará cualquier
X
programa requerido dentro de la ventana de la pantalla.NOTA: para cada
screen
ventana, las variables de entorno son independientes. Entonces, para cada ventana, es posible que deba configurarla por separado.Referencias
fuente