我可以ssh
访问我自己的安装了 Ubuntu 13.10 的服务器。
通过ssh
我可以使用这种方法启动 GUI 应用程序:
$ ssh -X my_login@address_of_sever
之后,我可以按名称启动任何应用程序,例如
gedit
,,,,它将在我的客户端计算机上打开(只是窗口,实际上应用程序在远程计算机上运行 - 即在服务器上)firefox
。google-chrome
这一切都很好。
但是当我关闭客户端计算机上的 GUI 应用程序时,它也会在服务器上关闭(这似乎是合法的)。
我可以使用以下命令启动控制台应用程序:
$ nohup php somefile.php &
关闭连接后它将继续工作。
我想知道,GUI 应用程序是否可以做同样的事情?
理想情况下,如果有可能将打开的窗口移动到服务器,并在需要查看那里发生的情况时将其带回客户端,也许是某种切换?
答案1
是的,你可以这样做X普拉。从他们的主页:
“要在远程系统上启动应用程序(本示例中是一个简单的 xterm)并将其显示在本地计算机上,只需运行:
xpra start ssh:SERVERHOSTNAME:100 --start-child=xterm
这与 ssh -X 类似,但速度更快,并且您可以根据需要多次断开和重新连接到会话。 (显然 xpra 必须安装在您的服务器主机上)要重新连接或从另一台计算机连接到此会话,请使用 Attach 命令(您也可以使用 xpra_launcher GUI):
xpra attach ssh:serverhostname:100
答案2
你不能。 “ssh -X”使用ssh通道转发X11协议。如果终止 ssh 连接,应用程序将无法再连接到服务器。
您可以使用 ssh 和 X11 做的是,如果您的网络是本地且安全的,则以 tcp 侦听模式在您的计算机上启动 X 服务器(许多显示管理器中有一个选项,无论是在 gui 中还是在文本配置中,您应该删除-nolisten tcp)。之后如果你这样做:
mydesktop$ xhost +myserver
mydesktop$ ssh myserver
myserver$ export DISPLAY=mydesktop:0
myserver$ xterm & disown
ctrl-C
mydesktop$
您的 xterm 将继续工作,由 ssh 启动,但 xterm 将通过 TCP 连接,无需 ssh。
答案3
据我所知,可以通过这种方式恢复 GUI 应用程序的唯一方法是在远程服务器的桌面上启动该应用程序,然后使用 VNC 等应用程序远程连接到远程系统的桌面。然后,您可以中断此连接并根据需要恢复它。
我不知道有什么方法可以恢复 GUI 应用程序,该应用程序远程显示到本地桌面。
对于控制台应用程序,您可以使用控制台管理器(例如screen
或 )tmux
来恢复这些连接,或者在用于启动它们的 SSH 连接断开时让它们保持不变,然后在稍后重新建立。