激活远程显示并远程运行X应用程序

激活远程显示并远程运行X应用程序

我有一台正在运行的台式机Debian 8.0我有权ssh访问。我在这台计算机上远程运行图形应用程序,因此我只需将桌面会话保持打开状态,ssh进入计算机,然后运行:

DISPLAY=:0.0 ./my-application

不幸的是,机器最近重新启动并且我的桌面会话结束,因此我无法DISPLAY再访问它,因为它当前显示 的登录屏幕kdm-greet

是否有一种机制可以远程登录图形会话,或者启动第二个会话DISPLAY来运行我的应用程序?请注意,我无法进行 X11 转发来使用我的本地显示器。

答案1

如果您不需要与程序交互(但由于某种原因它仍然需要 X 服务器),您可以使用 XvFB - 虚拟帧缓冲区显示。我发现这对于在构建机器上运行我的 UI 程序非常有用(主要是自动测试,并以多种语言生成产品屏幕截图)。

在大多数发行版上,它的形式如下xvfb

描述:虚拟帧缓冲区“假”X 服务器

Xvfb 提供了一个 X 服务器,可以在没有显示硬件和物理输入设备的机器上运行。它使用虚拟内存模拟哑帧缓冲区。该服务器的主要用途是服务器测试,但也发现了它的其他新颖用途,包括针对不寻常的深度和屏幕配置测试客户端、使用 Xvfb 作为后台渲染引擎进行批处理、负载测试(作为辅助)将 X 服务器移植到新平台,并提供一种不引人注目的方式来运行实际上不需要 X 服务器但无论如何都需要一个 X 服务器的应用程序。

该软件包还包含一个名为 的便捷脚本,xvfb-run 它可以简化虚拟服务器环境中 X 客户端的自动执行。这个方便的脚本需要使用该 xauth程序。

答案2

安装 VNC 服务器,例如 TigerVNC。以root身份启动它,转发端口(这不是X11转发,所以你应该能够做到这一点,除非他们单独禁止它),然后连接到它。您应该看到登录屏幕。登录。然后,运行DISPLAY=:0.0 ./my-application应该可以正常进行,此时,就像您在本地登录一样。

或者,如果您没有 root 权限,则可以使用不同的 VNC 服务器(例如 vnc4server),它会创建一个新的 DISPLAY,而不是附加到现有的 DISPLAY。然后只需使用它为您的程序提供的任何数字即可。

相关内容