Área de trabalho permanente na instância do Amazon EC2 com o servidor ubuntu

2

Estou tentando executar um programa em uma instância do servidor do Ubuntu 14.04 na Amazon, mas ele precisa de um gui. Eu posso instalar o lunbuntu e usar o x2go para visualizar a área de trabalho, mas assim que há um soluço na minha conexão de internet, a conexão do x2go cai e o ambiente de desktop parece ser desligado (junto com meu programa).

Existe uma maneira de ter a área de trabalho em execução o tempo todo na instância e usar o x2go para acessá-la (em vez de ela ser criada quando eu me conecto), para que a área de trabalho seja executada mesmo se eu perder minha conexão? O objetivo de executá-lo no EC2 é ter uma estabilidade maior em relação à minha conexão desleixada.

Depois de muitas horas sobre este problema com toneladas de leitura e experimentando diferentes soluções para configurar o arquivo DISPLAY e xauth, parece que não consigo fazê-lo funcionar. Pode até ser feito?

    
por Name 17.02.2016 / 17:53

1 resposta

3

Claro. Existem duas opções:

  1. Se você precisar, ocasionalmente, acessar a área de trabalho, use vncserver :

    sudo apt-get install tightvncserver
    

    Nota: existem outras implementações, mas esta funcionará bem. Depois de instalado, execute-o:

    vncserver :1
    

    Na primeira vez que você executar isso, ele solicitará uma senha para acessar sua área de trabalho. Escolha um. Agora você pode acessá-lo usando qualquer cliente VNC. Nota : o protocolo VNC não está encriptado. Você desejará encapsulá-lo em alguma criptografia (por exemplo, o encaminhamento de porta SSH, ou uma VPN, ou algo semelhante nessas linhas) e o firewall em suas portas (neste exemplo, essa é a porta 5901).

  2. Se você não precisa acessar a GUI, ela só precisa ser executada, você pode usar xvfb dentro de uma screen session:

    sudo apt-get install screen xvfb
    screen xvfb-run your_application
    

    Isso inicia uma sessão de tela, que inicia o xvfb, que inicia seu aplicativo. screen é um programa para permitir que você inicie algo, desconecte-se dele e reconecte-o mais tarde. A desconexão é feita por meio de ctrl - a , d (ou seja, manter controle e a, liberar ambos , pressione d); A reconexão é feita com screen -r .

    xvfb-run é um script que inicia Xvfb , que é a abreviação de "X for Virtual Framebuffer". Ele fala o protocolo X11, mas não faz quase nada com ele; o que quer que seu aplicativo envie para esse servidor X não é mostrado em nenhuma tela. Ainda é um servidor X, no entanto; para poder usá-lo, você deve definir algumas variáveis de ambiente e fazer uma Xauthority magic. xvfb-run existe para que você não precise fazer isso manualmente. Finalmente, depois de tudo configurado, xvfb-run inicia seu aplicativo e o conecta a Xvfb para gráficos e o terminal em que você o iniciou (nesse caso, sua sessão de tela) para stdout. Sempre que seu aplicativo se desconectar do servidor X, Xvfb (e por extensão, xvfb-run ) será encerrado.

Como Xvfb não permite modificar as coisas, isso requer menos recursos e pode ser mais rápido. No entanto, se você precisar acessar a GUI, isso não é uma opção.

    
por 17.02.2016 / 18:34