
我正在嘗試在 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,那麼這不是一個選擇。