X applications warn Couldn t connect to accessibility bus Failed to connect to socket
2022年7月8日大约 2 分钟
上一级页面:index-wsl
前言
今天运行基于x-org的GUI程序出现了报错如下。
#gvim
(gvim:832): dbind-WARNING **: 14:55:20.265: Couldn't connect to accessibility bus: Failed to connect to socket /tmp/dbus-GM466p6gM2: 拒绝连接
问题分析
导致该报错的原因多种多样(见Bug #1193236 “ 无法连接到辅助功能总线: 未能 ... : Bugs : at-spi2-core 包 : Ubuntu (launchpad.net)),但是总结起来有几点不得不谈
- 这属于GTK底层库运行时的报错,它不应当出现在最终运行用户的终端上!事实上,它也不应出现在编写应用程序的程序员那里,因为最终用户和应用程序开发者都无能为力,无法解决它。它只应当报告给底层库(GTK)的开发者
- 辅助消息总线(accessibility bus)在正常的SSH连接参数情况下,是不能通过SSH转发给远程主机的,所以,如果你正通过SSH链接到远程的一台主机上,出现这个错误是很正常的,并且是无解的。或许可以通过在SSH链接时设置某些参数来传递辅助消息总线的消息,但这也是不必要的,请不要这么做。
- 虽然造成它的原因可以多种多样,但对WSL用户来说有一个最简单的原因,你的x-server和x-client不在一台主机上,例如X-server在Windows端上,而x-client却在WSL中,出现这个错误也是很正常的。这可能是由于WSL端的xserver与远程系统端(Window端)的x-server具有不同的uuid。
说到底,应用开发者对此也叫苦连天,在这个问题上,他们也不能处理底层的GTK库的一些报错。
解决方案
设置一个环境变量,屏蔽这类辅助消息总线错误(accessibility bus error)即可。
export NO_AT_BRIDGE=1
常见问题一节中有,GTK - ArchWiki (archlinux.org)
参考、引用、致谢
linux - Couldn't connect to accessibility bus in network namespace - Stack Overflow