Lançar aplicativo via ssh

5

Eu sou novo no SSH. Eu posso me conectar a um computador remoto. Também posso iniciar um aplicativo em um computador remoto e ver sua GUI na tela.

Mas eu não sei como iniciar um aplicativo sem que ele produza a saída na minha tela.

Eu quero lançar um aplicativo (por exemplo, rhythmbox) e fechar a conexão ssh, deixando o aplicativo em execução, sem enviar nenhuma saída para minha tela.

Navegando na Web, encontrei alguns conselhos, mas nada me ajudou;

ssh -X name@domain
nohup rhythmbox &
logout
    
por 0xDE4E15B 22.08.2011 / 21:43

1 resposta

3

Você quer dizer que deseja que o Rhythmbox seja exibido na tela do computador remoto? A tela na qual um aplicativo da GUI é exibido é indicada pela variável de ambiente DISPLAY . Quando você executa ssh -X , DISPLAY é definido como um valor que indica que as solicitações de exibição devem ser encaminhadas pela conexão SSH. Para que o aplicativo seja exibido na tela do computador remoto, defina DISPLAY como o valor :0 .

ssh [email protected] 'DISPLAY=:0 rhythmbox &'

Há mais um obstáculo: quando um aplicativo se conecta a um monitor X, ele precisa fornecer um tipo de senha chamada cookie. O cookie é gerado toda vez que o servidor X é iniciado. O Ubuntu armazena o cookie em um arquivo com um nome gerado aleatoriamente. A maneira mais fácil de encontrar o cookie é armazená-lo em um nome de arquivo conhecido quando o servidor X é iniciado. No Ubuntu, adicione este código ao seu ~/.profile :

case $DISPLAY:$XAUTHORITY in
  :*:?*)
    # DISPLAY is set and points to a local display, and XAUTHORITY is
    # set, so merge the contents of '$XAUTHORITY' into ~/.Xauthority.
    XAUTHORITY=~/.Xauthority xauth merge "$XAUTHORITY";;
esac

Para mais informações, consulte a variável ssh DISPLAY .

Ou você quis dizer que nunca mais quer ver a janela do Rhythmbox? Se sim, conecte-se a um servidor X virtual, xvfb . Inicie o servidor X virtual e informe ao Rhythmbox para se conectar a ele.

ssh [email protected] 'Xvfb :1 -screen 0 800x600x8 & sleep 1; DISPLAY=:1 rhythmbox &'
    
por Gilles 22.08.2011 / 23:30