
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
즉 제어 유지 및 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에 액세스해야 하는 경우 이는 옵션이 아닙니다.