Ssh
在後台執行 GUI 應用程序並稍後重新連接
有沒有辦法在後台執行 Gui 應用程序 (X11),這樣如果我斷開連接,我可以再次恢復正在執行的應用程序?
我在 Windows 上使用 SmarTTY 連接到遠端 CentOS。當我執行一個 Gui 應用程序(例如 gnome-help)時,它會啟動 Xming 伺服器並顯示它的視窗。
即使我斷開連接、崩潰或關閉 ssh 連接,我也希望它保持執行。這樣我就可以稍後再繼續執行應用程序。
我試過’screen’和’&‘以及兩者的組合,但都不起作用。關閉 SSH 連接後,我無法再次連接到 GUI 應用程序。
- 編輯 -
正如Anthon所回答的
- 在遠端系統(例如 CentOS)上安裝 VNC Server 和 VNC Viewer。
- 遠端啟動 VNC 伺服器
Xvnc -localhost :13
- 啟動 VNC 查看器,以便它通過 X 在本地顯示(例如在您的 Windows 上)
- 設置顯示
export DISPLAY=:13
- 啟動一個 GUI 應用程序,它將顯示在 VNC 查看器中
X 應用程序需要一個螢幕才能正常連接(如果您
ssh
使用-X
本地螢幕進行連接)。你可以做的是使用Xvnc並為你的 X 應用程序創建一個虛擬螢幕來連接,然後在重新登錄後,使用 vncviewer 來觀察這個虛擬螢幕上發生的事情。這與使用screen
或tmux
用於終端會話的方式類似。你通過以下方式啟動 Xvnc:
Xvnc -localhost -SecurityTypes=None :13
13 是唯一的數字。在啟動 X 應用程序之前,您可以使用此數字設置 DISPLAY 環境變數。
在啟動期間,Xvnc 會告訴你使用哪個埠來連接(在我的例子中是 5913)。如果您未指定
-localhost
,您可以使用 vnc 查看器直接通過網路連接,而無需先使用 ssh 登錄(這當然取決於您的防火牆,您應該使用受密碼保護的連接而不是-SecurityTypes=None
)在基於 Debian 的系統上,您可以從包中安裝 Xvnc
vnc4server