我正在尝试在Amazon的ubuntu 14.04服务器实例上运行程序,但需要使用GUI。我可以安装lunbuntu并使用x2go来查看桌面,但是一旦我的Internet连接出现故障,x2go的连接就会断开,并且桌面环境似乎会关闭(以及我的程序)。
有没有一种方法可以让桌面始终在实例上运行并使用x2go来访问它(而不是在连接时创建它),这样即使我失去连接也可以运行桌面?与草率的连接相比,在EC2上运行它的全部目的是要提高稳定性。
经过数小时的阅读和尝试不同的解决方案来设置DISPLAY和xauth文件的尝试,解决了这个问题很多小时后,我似乎无法正常工作。甚至可以做到吗?
当然。有两种选择:
如果您偶尔需要访问桌面,请使用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
图形,并在其中启动其的终端(在本例中为屏幕会话)连接至stdout。每当您的应用程序与X服务器断开连接时Xvfb
(并通过扩展名xvfb-run
),都将退出。
由于Xvfb
不允许您修改内容,因此需要较少的资源,并且速度可能更快。但是,如果您需要访问GUI,则不是一种选择。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句