Постоянный рабочий стол на экземпляре Amazon EC2 с сервером Ubuntu

Постоянный рабочий стол на экземпляре Amazon EC2 с сервером Ubuntu

Я пытаюсь запустить программу на экземпляре сервера ubuntu 14.04 на Amazon, но ему нужен gui. Я могу установить lunbuntu и использовать x2go для просмотра рабочего стола, но как только происходит сбой в моем интернет-соединении, соединение x2go обрывается, и среда рабочего стола, похоже, отключается (вместе с моей программой).

Есть ли способ заставить рабочий стол работать все время на экземпляре и использовать x2go для доступа к нему (вместо того, чтобы он создавался при подключении), чтобы рабочий стол работал даже если я потеряю соединение? Весь смысл запуска его на EC2 заключается в том, чтобы иметь повышенную стабильность по сравнению с моим нестабильным соединением.

После многих часов работы над этой проблемой с тоннами чтения и попыток разных решений для настройки DISPLAY и файла xauth, я, похоже, не могу заставить это работать. Это вообще возможно сделать?

решение1

Конечно. Есть два варианта:

  1. Если вам время от времени необходимо получить доступ к рабочему столу, используйте vncserver:

    sudo apt-get install tightvncserver
    

    Примечание: есть и другие реализации, но эта будет работать нормально. После установки запустите ее:

    vncserver :1
    

    При первом запуске он запросит пароль для доступа к рабочему столу. Выберите один. Теперь вы можете получить к нему доступ с помощью любого клиента VNC.Примечание: протокол VNC не зашифрован. Вам нужно будет туннелировать его в каком-то шифровании (например, переадресация портов SSH, или VPN, или что-то в этом роде), и закрыть его порты брандмауэром (в этом примере это порт 5901).

  2. Если вам не нужен доступ к графическому интерфейсу, а нужно просто запустить его, вы можете использовать его xvfbвнутри screenсеанса:

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

    Это запускает сеанс экрана, который запускает xvfb, который запускает ваше приложение. screenэто программа, которая позволяет вам запускать что-либо, отключаться от него и подключаться к нему позже. Отключение выполняется с помощью ctrl- a, d(то есть удерживать control и a,освободить обоих, нажмите d); повторное подключение выполняется с помощью screen -r.

    xvfb-runэто скрипт, который запускает Xvfb, что является сокращением от "X for Virtual Framebuffer". Он говорит на протоколе X11, но почти ничего не делает с ним; все, что ваше приложение отправляет на этот X-сервер, не отображается ни на одном экране. Однако это все еще X-сервер; чтобы иметь возможность использовать его, вы должны установить несколько переменных окружения и сделать немного Xauthorityмагии. xvfb-runсуществует, чтобы вам не пришлось делать это вручную. Наконец, после того, как все это настроено, xvfb-runзапускает ваше приложение и подключает его Xvfbдля графики и терминал, на котором вы его запустили (в данном случае, ваш сеанс экрана) для stdout. Всякий раз, когда ваше приложение отключается от X-сервера, Xvfb(и, соответственно, xvfb-run) будет завершено.

Поскольку Xvfbне позволяет вам изменять вещи, он требует меньше ресурсов и может быть быстрее. Однако, если вам нужен доступ к GUI, это не вариант.

Связанный контент