2012-03-05 5 views
10

Tengo ssh-ed en una máquina remota. He habilitado el reenvío X11 (ssh -X) y he iniciado un programa GUI.Salir de sesión de ssh -X con un programa de GUI en ejecución pero dejando que el programa se ejecute en el host remoto

El programa demora 5 minutos en configurarse para procesar, pero el procesamiento real demora entre 1 y 2 horas. No quiero transmitir datos mientras el programa está funcionando. Ni siquiera quiero volver a ver el programa, ya que produce los archivos como salida cuando termina y puedo borrarlos.

Entonces, ¿cómo puedo salir de la sesión ssh pero dejar el programa ejecutándose en la máquina? CRTL + C en el terminal?

EDITAR: Para la respuesta, consulte mi comentario justo debajo.

+0

OK, así que me encontré con lo que creo que es la forma más fácil de hacerlo. Estaba leyendo acerca de la pantalla y se me ocurrió que puede usar la utilidad de pantalla para desconectar y cerrar la sesión dejando que los procesos se ejecuten en la computadora remota. Después de eso, puede iniciar sesión y volver a conectarse. – s5s

+1

Se puede usar 'xpra' para programas X de forma similar a' pantalla' para programas de terminal: inicie los programas X debajo de él, separe/vuelva a conectar. - http://en.wikipedia.org/wiki/Xpra –

Respuesta

9

Para resumir, no puede hacer esto sin hacer algunas modificaciones en la forma en que ejecuta las cosas. Una aplicación GUI requiere que un destino del servidor X acepte sus actualizaciones de la GUI: si está utilizando su servidor X local para hacer esto, entonces (1) se requerirá que (2) la conexión sea realmente manejable. actualizaciones.

Una forma de evitar esto es usar algo como Xvfb - que es una forma sin cabeza de alojar un servidor X virtuales. Más allá de los ejemplos proporcionados en la página de wikipedia, las personas que parecen hacer un uso frecuente de este mecanismo son Selenium usuarios.

+1

Se puede usar 'xpra' de manera similar: inicie X programas debajo de él, separe/vuelva a conectar. - http://en.wikipedia.org/wiki/Xpra –

+0

No había oído hablar de xpra, es genial, es como una pantalla para X aplicaciones. Esto suena como que encajaría en la factura del OP. – synthesizerpatel

0

Corriendo ssh -X -f [email protected] yourprogram debería hacer el truco.

+1

pero no hará que la sesión de ssh se cierre, se abrirá en segundo plano, o ...? –

+1

Sí, estará activo en segundo plano. Sin él, no podrías comunicarte con la aplicación que comenzaste. –

0

El inicio de su programa con nohup program & hará que sea seguro cerrar su terminal, el programa seguirá ejecutándose.

No podrá ver la IU después de finalizar la sesión de SSH, pero como no la necesita de todos modos, hará el trabajo.

2

Impresionante, he estado buscando una respuesta aceptable a mi problema durante horas, y finalmente aparece una. ssh -X -f login @ machine yourprogram funcionó perfectamente para mí. Aunque utilicé ssh -Y -f login @ machine yourprogram. Esto me ha estado volviendo loco.

+1

Puede escribir un comentario en lugar de decir todo esto en una respuesta. – Naddy

1

Como dijeron algunas personas, SSH-X está utilizando su servidor X local, por lo que necesita la conexión. Tuve el mismo problema, quería dejar ssh pero dejar las aplicaciones de GUI ejecutándose. Para hacer esto, instalé el servidor X y el servidor VNC en el host remoto. Con un cliente de VNC en su computadora local, puede conectarse fácilmente al servidor de VNC y desconectarse de las aplicaciones de la GUI en ejecución.

Por cierto, tendrá mejores actuaciones con VNC. En mi caso, Firefox fue muy lento y algunos sitios no se cargaron en absoluto con SSH-X, incluso con optimizaciones -Y o -C.

Cuestiones relacionadas