Amazon의 ubuntu 14.04 서버 인스턴스에서 프로그램을 실행하려고 하는데 GUI가 필요합니다. lunbuntu를 설치하고 x2go를 사용하여 데스크탑을 볼 수 있지만 인터넷 연결에 문제가 발생하자마자 x2go의 연결이 끊어지고 데스크탑 환경이 (내 프로그램과 함께) 종료되는 것 같습니다.
연결이 끊어져도 데스크톱이 실행될 수 있도록 인스턴스에서 항상 데스크톱을 실행하고 x2go를 사용하여(연결 시 생성하는 대신) 액세스할 수 있는 방법이 있습니까? EC2에서 실행하는 요점은 엉성한 연결이 아니라 안정성을 향상시키는 것입니다.
DISPLAY 및 xauth 파일을 설정하기 위해 여러 시간 동안 다양한 솔루션을 읽고 시도한 후에도 제대로 작동하지 않는 것 같습니다. 아직도 할 수 있나요?
답변1
틀림없이. 두 가지 옵션이 있습니다:
가끔 데스크톱에 액세스해야 하는 경우 다음을 사용하세요
vncserver
.sudo apt-get install tightvncserver
참고: 다른 구현도 있지만 이 방법은 제대로 작동합니다. 설치 후 다음을 실행하십시오.
vncserver :1
처음 실행하면 데스크탑에 액세스하기 위한 비밀번호를 묻는 메시지가 표시됩니다. 하나를 선택하세요. 이제 VNC 클라이언트를 사용하여 액세스할 수 있습니다.노트: VNC 프로토콜은 암호화되지 않습니다. 일종의 암호화(예: SSH 포트 전달, VPN 등)를 통해 터널링하고 방화벽을 통해 해당 포트(이 경우 포트 5901)를 격리해야 합니다.
GUI에 액세스할 필요가 없고 실행만 하면 되는 경우 세션
xvfb
에서 다음을 사용할 수 있습니다.screen
sudo apt-get install screen xvfb screen xvfb-run your_application
그러면 xvfb와 애플리케이션이 시작되는 스크린 세션이 시작됩니다.
screen
작업을 시작하고 나중에 연결을 끊었다가 다시 연결할 수 있는 프로그램입니다. 연결 해제는ctrl
- 를 통해 수행됩니다a
(d
즉, 제어를 유지하고,둘 다 풀어줘, d)를 누르면 을 통해 다시 연결됩니다screen -r
.xvfb-run
Xvfb
"X for Virtual Framebuffer"의 약어인 시작 스크립트입니다 . X11 프로토콜을 사용하지만 응용 프로그램이 X 서버로 보내는 모든 작업은 화면에 나타나지 않습니다. 그러나 여전히 X 서버입니다. 이를 사용하려면 일부 환경 변수를 설정하고 몇 가지Xauthority
마법을 수행해야 합니다.xvfb-run
존재하므로 이 작업을 수동으로 수행할 필요가 없습니다. 마지막으로 모든 것이 설정되면xvfb-run
애플리케이션을 시작하고 이를Xvfb
시작한 그래픽과 터미널(이 경우 스크린 세션)에 연결하여 표준 출력을 얻습니다. 응용 프로그램이 X 서버에서 연결이 끊어질 때마다 응용 프로그램Xvfb
(확장xvfb-run
)이 종료됩니다.
Xvfb
콘텐츠 수정이 허용되지 않으므로 리소스가 덜 필요하고 속도가 더 빨라질 수 있습니다 . 그러나 GUI에 액세스해야 하는 경우 이는 옵션이 아닙니다.