Linux ssh iniciando a aplicação GUI e deixando-a rodando?

6

Eu tenho ssh de acesso ao meu próprio servidor com o Ubuntu 13.10 instalado.

Via ssh Posso iniciar aplicativos GUI usando essa abordagem:

$ ssh -X my_login@address_of_sever

Depois disso, posso iniciar qualquer aplicativo pelo nome, por exemplo    gedit , firefox , google-chrome , e ele será aberto na minha máquina cliente (apenas a janela, na verdade, o aplicativo funciona na máquina remota - ou seja, no servidor).

Tudo bem.

Mas quando fecho o aplicativo GUI na máquina do cliente, ele também é fechado no servidor (parece legítimo).

Posso iniciar aplicativos do console usando comandos como:

$ nohup php somefile.php &  

e continuará funcionando depois de fechar a conexão.

Eu me pergunto, é possível fazer o mesmo com a aplicação GUI?

O ideal seria se fosse possível mover a janela aberta para o servidor e levá-la de volta ao cliente quando fosse necessário ver o que está acontecendo lá, algum tipo de troca, talvez?

    
por Tebe 26.05.2014 / 18:45

3 respostas

4

Sim, você pode fazer isso com xpra . De sua página inicial:

"To start an application (a simple xterm in this example) on a remote system and display it your local machine, simply run:

xpra start ssh:SERVERHOSTNAME:100 --start-child=xterm

This is similar to ssh -X, except it is faster and you can disconnect and re-connect to the session as many times as you like. (obviously xpra must be installed on your server host) To re-connect or to connect to this session from another machine, use the attach command (you can also use the xpra_launcher GUI):

xpra attach ssh:serverhostname:100
    
por 26.05.2014 / 22:20
0

O único método de saber onde é possível retomar um aplicativo GUI dessa maneira é iniciar o aplicativo na área de trabalho do servidor remoto e, em seguida, usar um aplicativo como o VNC para conectar-se remotamente à área de trabalho do sistema remoto. Você pode então interromper essa conexão e retomar conforme necessário.

Não tenho conhecimento de nenhum método em que você possa retomar um aplicativo de GUI, em que o aplicativo seja exibido remotamente em sua área de trabalho local.

Para aplicativos de console, você pode usar os gerenciadores de console, como screen ou tmux , para continuar essas conexões ou mantê-las quando a conexão SSH usada para iniciá-las for interrompida e, em seguida, restabelecida.

    
por 26.05.2014 / 19:32
0

Você não pode. "ssh -X" usa o canal ssh para encaminhar o protocolo X11. Se você encerrar o aplicativo de conexão ssh, não será mais possível conectar-se ao servidor.

O que você pode fazer com o ssh e o X11 é que, se a sua rede é local e segura, é ativar o servidor X na sua máquina no modo de escuta tcp (existe e opção em muitos gerenciadores de exibição, em gui ou texto configs você deve remover o -nolisten tcp). Depois do que se você fizer:

mydesktop$ xhost +myserver
mydesktop$ ssh myserver
myserver$ export DISPLAY=mydesktop:0
myserver$ xterm & disown
ctrl-C
mydesktop$

Seu xterm continuará a funcionar, iniciado por ssh, mas o xterm será conectado via TCP sem ssh.

    
por 27.05.2014 / 17:12

Tags