我有一个用 Qt 编写的 GUI 应用程序,我想通过 ssh (或 Jenkins)运行测试。只有一个用户帐户,允许在显示模式下运行它(ofc,当我以前这样做时)export $DISPLAY=:0
。在其他用户 jenkins 上,我在控制台中看到一个错误:
QXcbConnection: Could not connect to display :0
Aborted (core dumped)
我应该怎么做才能允许该用户以图形模式运行应用程序?我使用Ubuntu 14.04。
答案1
我通过设置 X 虚拟帧缓冲区,在无头持续集成服务器上使用 QTestLib 运行 GUI 应用程序的单元测试。
Xvfb :1 &
PID=$!
DISPLAY=:1 make check
kill $PID
答案2
X11vnc
也许就是你想要的。它将允许您使用 vnc 共享整个桌面。
或者,为了更多的控制:允许 X11 将单独的窗口放在显示器上,也放在本地显示器上,然后用于xauth
配置安全性。 Notexhost
也可以用于执行与 相同的操作xauth
,但它非常不安全,它将允许网络上的任何计算机访问您的桌面,并控制您的应用程序(即使您使用基于主机的身份验证)。
答案3
基于@tveronesi解决方案,您可能只允许本地连接到X服务器:
xhost +local: