我正在尝试运行一个程序,该程序使用 X11 在云中的计算机(ec2、Compute Engine 等)上显示(假设 xeyes 或类似的东西)。据我所知,如果-X
我在 ssh 进入服务器时使用该选项,我可以让 Windows 显示在我的 X11 服务器上。但我试图实际显示该机器上的窗口(我知道这并没有真正意义为什么我需要它,但我有一些需要它的视频录制程序)。我该怎么做呢?我正在尝试制定一个可扩展的解决方案。
我家里有一台机器,正在测试。我有 ubuntu 桌面 20.04。如果我以正常方式登录(键盘、鼠标、显示器),那么我可以ps aux | grep X
看到 X 服务器正在运行。如果我 ssh 进入机器,我可以看到同样的事情,然后更改我的DISPLAY
环境变量并在那台机器上启动图形程序。但是,如果我不通过 Ubuntu 桌面登录计算机,则没有 X 服务器正在运行,我无法启动程序。我明白这可能就是事情本来的样子。我想“欺骗”机器让它认为有一个显示器。
我尝试通过运行从 ssh 启动 x startx
,但我不Only console users are allowed to run the X server
知道我是否应该尝试从 ssh 启动 Ubuntu Desktop,或者我是否应该做一些完全不同的事情来运行 X11 程序。
我有一些一般性的 X11 问题,它们也有助于我的任务
- 谁在 X 上实际渲染?如果我是 XClient,我是否渲染所有图形并将原始像素发送到 X-Server 来显示它们?或者 XClient 是否发送它想要呈现的窗口的一些表示,然后 XServer 呈现它。 IE,如果我有一个超快的 GPU 并且 XServer 和 XClient 运行在不同的机器上,我希望 GPU 运行在哪台机器上?
- X11 仅在看到插入计算机的实际输入(HDMI、VGA)时才能识别显示器,还是可以拥有可以渲染的纯软件显示器?
我愿意阅读任何可以帮助我解决这个问题的资源。对此任何部分的任何帮助都将受到赞赏。谢谢!
编辑1:实际用例是专有的,但想法是我试图渲染一个镀铬窗口并将窗口随时间的输出记录到视频文件中。我希望它具有很强的可扩展性,以便轻松设置和启动。