如何通过SSH在远程Linux PC上启动GUI软件


109

有时,我需要在一台PC(用作媒体中心的小型Xubuntu PC)上启动XMBC媒体播放器或其他GUI软件。

通常,我这样做是通过SSH在远程PC上启动X11vnc服务器,然后将Xvnc客户端连接到Xfce桌面。

有没有办法通过SSH在远程Linux PC上启动GUI软件?

谢谢!


如果远程客户端也是Mac,也可以确认所选答案中的方法是否有效。与macOS Sierra一起成功地工作。
本杰明·R

Answers:


136

是。您只需要export DISPLAY=:0在ssh会话中运行(或将远程显示编号为),运行的程序就会在远程显示上运行。一个简单的例子:

oli@bert:~$ ssh tim
oli@tim:~$ export DISPLAY=:0
oli@tim:~$ firefox

Firefox现在正在tim的显示屏上运行。

但是,当您关闭ssh会话时,大多数情况下,远程应用程序将关闭。如果要断开与ssh的连接,但要保持应用程序的运行状态,则需要使用屏幕(使ssh会话保持在后台运行)或nohup,或其他方法以特殊方式启动它。有关此的更多信息,最近还有一个问题

您可以将所有内容简化为一个命令,该命令将连接,以行方式导出显示并以在ssh会话终止后不会关闭它的方式启动应用程序:

ssh tim "DISPLAY=:0 nohup firefox"

它说的是No DISPLAY: this may not be what you want.我尝试过的时间(我是从abiword尝试过的。”
PyRulez 2014年

1
@PyRulez注意第一行中的“或任何远程显示器被编号为”。如果不是第一个图形服务器,则可能是:1或更高。运行w查看谁登录以及登录何处。这也将告诉您DISPLAY号。
奥利(Oli)

1
我该如何将其关闭
-akabhirav

1
unset DISPLAY
奥利(Oli)

7
有时您想做相反的事情并在本地运行X应用程序,只需使用-Y连接,然后运行您的应用程序ssh -Y <remoteip>
Postadelmaga
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.