我使用以下设置将X11
输出从本地计算机转发到服务器。我将概述设置:
X11
服务器和客户端位于同一台本地计算机上。- 服务器
X11
在我的本地计算机上运行A
。 - 客户端作为 docker 容器在我的本地计算机上运行,称为
B
. - 我尝试将
R
客户端上的程序 () 的图形输出转发B
到主机上的服务器A
。
以下是访问的工作原理:
- 我的客户
B
具有对/tmp/.X11-unix
.因此,它可以访问 unix 域套接字unix:0
。 B
我通过xhost +si:localuser:$(USER)
在主机上发出命令来允许客户端访问此套接字A
。 (这是一个服务器解释的地址,授予单个本地用户访问权限。)
所有这些都按预期工作,但是每当我尝试访问套接字时,第一次尝试都不起作用,并且出现错误X11 protocol error: BadAccess (attempt to access private resource denied)
。当我再次关闭X11
图形设备并重新打开它时,一切正常。即使我使用依赖于ssh
-based 的完全不同的设置,问题仍然存在X11-forwarding
。cairo
如果我使用Xlib
设备访问第一次尝试成功,我可以将问题追溯到设备。有谁有使用设备访问X11
服务器的 unix 域套接字的程序的经验cairo
,或者知道为什么会发生这种情况?