![在后台运行 GUI 应用程序并稍后重新连接](https://linux22.com/image/35066/%E5%9C%A8%E5%90%8E%E5%8F%B0%E8%BF%90%E8%A1%8C%20GUI%20%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E5%B9%B6%E7%A8%8D%E5%90%8E%E9%87%8D%E6%96%B0%E8%BF%9E%E6%8E%A5.png)
有没有办法在后台运行 Gui 应用程序 (X11),这样如果我断开连接,我可以再次恢复正在运行的应用程序?
我在 Windows 上使用 SmarTTY 连接到远程 CentOS。当我运行 Gui 应用程序(例如 gnome-help)时,它会启动 Xming 服务器并显示其窗口。
即使我断开、崩溃或关闭 ssh 连接,我也想保持它运行。这样我以后就可以继续运行应用程序。
我尝试过“屏幕”和“&”以及两者的组合,但都不起作用。当 SSH 连接关闭时,我无法再次连接到 GUI 应用程序。
- 编辑 -
正如安东所回答的
- 在远程系统(例如 CentOS)上安装 VNC 服务器和 VNC 查看器。
- 远程启动VNC服务器
Xvnc -localhost :13
- 启动 VNC Viewer,以便它通过 X 本地显示(例如在 Windows 上)
- 设置显示
export DISPLAY=:13
- 启动 GUI 应用程序,它将显示在 VNC 查看器中
答案1
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 的系统上,您可以从软件包中安装 Xvncvnc4server