如何修复Ubuntu环境下xdpyinfo报错“No protocol specified”?
解决xdpyinfo "No protocol specified" 报错问题
问题原因
用xvfb-run启动Xvfb时指定了--auth-file=/tmp/Xauthority,启用了X服务器的权限认证机制。但执行xdpyinfo时,当前会话未加载该认证文件的信息,无法通过权限校验,因此抛出错误。
可行解决方案
方案1:临时指定认证文件路径
执行xdpyinfo时,通过环境变量直接指定认证文件:
XAUTHORITY=/tmp/Xauthority xdpyinfo -display :76
方案2:导入认证信息到当前会话
先将指定的认证文件内容合并到当前用户的xauth数据库中:
xauth merge /tmp/Xauthority
完成后直接执行xdpyinfo即可:
xdpyinfo -display :76
方案3:关闭Xvfb的权限认证(不推荐)
如果不需要权限控制,可修改启动命令,去掉--auth-file参数并添加-ac关闭访问控制:
xvfb-run -e x11.log --listen-tcp --server-num=76 --server-arg="-screen 0 1920x1080x24 -ac" nohup xclock > app.log 2>&1 < /dev/null &
之后直接运行xdpyinfo -display :76就能成功,但这种方式允许任意用户连接到Xvfb服务器,存在安全隐患,仅适合测试环境使用。
内容的提问来源于stack exchange,提问作者Jingguo Yao
相关产品推荐
相关产品推荐

