在VNC或RDP会话中启动Linux GUI应用程序以供以后访问

使用BASH脚本,我需要在启动时启动一个GUI应用程序,以便稍后可以通过RDP或VNC连接并查看应用程序的运行情况。 例如,脚本将在引导时运行,并启动给定的基于GUI的分析应用程序。 在任何时候,我都需要RDP / VNC来查看应用程序的进度并与之交互。

到目前为止,我在运行EC2的Ubuntu Server 12.04.1上使用LXDE。

两种不同的方法取决于基于GUI的应用程序是否需要在启动后运行:

  • 有问题的应用程序不仅是一个前端,而是执行实际的工作。 在这种情况下,您需要一个upstart脚本来启动应用程序,并且还将VNC或RDP服务器configuration为从启动脚本运行。 这不是一个安全的方法。
  • 该应用程序只是一个Web前端。 在这种情况下,如果您在sshconfiguration中启用了X11Forwarding ,则可以通过SSH隧道按需启动应用程序,从而X11Forwarding 。 然后就像ssh -X user@host 'gui-app'一样简单,

啊,我们可以做到这一点的夫妇。 你实际上有两个我看到的问题。

问题1:如何在启动时启动bash脚本?
答1a:作为根,做一个暴发户的脚本,看新贵的文档 。
答案1b:选项2作为没有root权限的用户。 创build一个每5分钟运行一次的cron作业来检查以确保bash脚本尚未运行,如果不是,则启动该进程。

问题2:如何在VNC / RDP中启动应用程序?
答案2:RDP得不到很好的支持。 VNC不是很安全,但是如果你坚持的话。 一次手动启动vnc服务器,设置密码。 这也将为configuration创build.vnc目录。 现在编辑.vnc / xstartup并添加程序/ bash脚本的启动。

回到答案1a + b,你应该添加启动vncserver作为你的启动,而不是脚本本身。 vncserver的启动将会启动应用程序一次。

cron的例子:
*/5 * * * * pgrep -u $USER vncserver > /dev/null || vncserver -geometry 1024x768

以上脚本的里程不一。 随意添加更多的冗长。

新贵会起作用,而远程GUI访问的唯一另外一件事就是xRDP。 以下是安装和configuration的链接: http : //www.1337admin.org/linux/ubuntu/installing-rdp-server-on-ubuntu-13-10/