X11 forwarding - captura janelas de programas já em execução

1

Se eu fizer ssh em uma máquina, posso executar aplicativos gráficos se eu habilitar o encaminhamento do X11 - eu corro gedit da linha de comando, e o gedit aparece como uma janela. Minha pergunta é a seguinte: existe uma maneira de fazer aparecer uma janela para aplicativos que já estão sendo executados?

Exemplo: suponha que eu tenha duas máquinas, A e B. Eu abro gedit em A, e digito some text e saio. Então eu ssh em A a partir de B. Se eu executar gedit , eu apenas gerarei outro processo. Posso acessar o processo de gedit que já está em execução (com some text )? Ou isso é um trabalho para vnc?

    
por Charles Noon 01.11.2017 / 22:37

1 resposta

4

Não é realmente uma solução para literalmente "pegar janelas de programas já em execução", mas ainda assim ...

Use xpra .

On X11, it is also known as screen for X11: it allows you to run programs, usually on a remote host, direct their display to your local machine, and then to disconnect from these programs and reconnect from the same or another machine, without losing any state.

[…]

Xpra also allows forwarding of sound, clipboard and printing services. Sessions can be accessed over SSH, or password protected over plain TCP sockets with or without SSL.

Ele precisa ser instalado, configurado e iniciado antecipadamente, assim como screen ou tmux para aplicativos de console. Você tem que executar seu programa via xpra em primeiro lugar, então você pode fazer a mágica de (re) conectar de diferentes máquinas.

xpra está disponível como xpra package pelo menos no Debian e no Ubuntu. Eu usei algumas vezes. O desempenho foi melhor do que para o encaminhamento simples do X.

Exemplos são aqui . Os seguintes são de man xpra no meu Kubuntu:

xpra start :7

Start an xpra server using display number :7.

DISPLAY=:7 firefox

Start firefox running inside the xpra server. Run this on the host where xpra was started or in terminal forwarded by xpra. No window will appear until you attach with xpra attach.

Você executa os exemplos acima em seu A. Então você pode anexar diretamente de A:

xpra attach :7

Attach to the xpra server that is using local display number :7. Any apps running on that server will appear on your screen.

ou do seu B:

xpra attach ssh:foo@frodo:7

Use ssh to attach to the xpra server that is running on machine frodo as user foo and using display :7. Any apps running on that server will appear on your local screen.

    
por 01.11.2017 / 23:14

Tags