Eu uso o GNU Screen constantemente. Mas, eu tenho tentado descobrir se há alguma maneira de fazer com que os aplicativos X11 encaminhem a tela quando estou fazendo o ssh (isso é uma palavra?). Atualmente, se eu tentar executar o 'gedit' na tela, ele será aberto no meu computador 'servidor' e não no meu cliente. Se eu fizer o mesmo fora da tela, tudo estará bem. Mas quero que tudo fique bem quando uso a tela também!
Obrigado!
PS: Eu pesquisei o problema no google e vejo menção ao xmove, mas não consigo encontrar o pacote que contém o xmove no meu ubuntu. (ubuntu 10.10)
command-line
ssh
gnu-screen
Sandro
fonte
fonte
Respostas:
Para fazer isso manualmente, depois de efetuar o SSH, mas antes de reconectar à tela, verifique sua variável de ambiente DISPLAY:
Depois de anexar novamente à tela, defina explicitamente a variável de ambiente:
onde : N.0 é o que foi
echo
mostrado antes do anexo. Isso não será perfeito, pois alguns aplicativos podem esperar falar com o Session D-Bus, que é um pouco mais complexo para enviar pela conexão SSH.fonte
echo $DISPLAY > $HOME/.display.txt; screen -x -d
e depois outro na tela para executar que fazexport DISPLAY=$(cat $HOME/.display.txt)
. /path/to/script
ondescript
está #export DISPLAY=$(cat $HOME/.display.txt)
existe um programa chamado xpra nos repositórios, é como a tela gnu para o x11. não é muito difícil trabalhar com:
Aplicativos remotos persistentes X
O Xpra oferece a funcionalidade dos aplicativos GNU Screen for X.
Ele permite que o usuário visualize aplicativos X remotos em sua máquina local, desconecte e reconecte-se da máquina remota sem perder o estado dos aplicativos em execução.
fonte
O Byobu reconecta automaticamente os agentes ssh e gpg. Eu poderia fazê-lo reconectar a variável de exibição, se isso for útil para você ...
fonte
Foi assim que o fiz funcionar ao executar o byobu
Adicione esta linha no .bash_login antes da linha "_byobu_source ..":
E adicione esta linha ao .bashrc :
fonte
Parece que o problema é que a variável de ambiente XAUTHORITY não é preservada na sessão de tela. Resolvi isso adicionando o seguinte ao meu .bashrc. Não achei que isso fosse necessário, mas acho que você faz o que deve:
Não espero que seja a melhor solução ou a mais concisa, mas funciona.
fonte
O FreeNX é um aplicativo maravilhoso para trabalhar com monitores remotos.
fonte
Com base na sugestão @harre, achei a melhor solução para trabalhar, pelo menos para RHEL via Putty. Eu sei que há uma maneira melhor do que criar um arquivo que contém o var, mas isso funciona fora do portão
X11
para ter acesso aoDISPLAY
quando carregado viagnu screen
.Solução automatizada
Adicionar a
.bashrc
(ou.bash_profile
, dependendo do seu caso de uso)Em seguida, adicione o seguinte arquivo (ou sua opção de caminho)
fonte