每个从 shell 运行的 X11(工作)应用程序都会显示“未指定协议”

每个从 shell 运行的 X11(工作)应用程序都会显示“未指定协议”

每个从 shell 运行的 X11(工作)应用程序都会显示“未指定协议”。这是本地环境,一切正常,没有 SSH X11 转发。 OpenSUSE Tumbleweed、lightdm (DM) 和 i3 (WM)。

$ echo $DISPLAY ; xlsclients
:0
No protocol specified
localhost.localdomain  nm-applet
localhost.localdomain  polkit-gnome-authentication-agent-1
localhost.localdomain  redshift-gtk
localhost.localdomain  emacs
localhost.localdomain  google-chrome
localhost.localdomain  soffice
localhost.localdomain  xterm
localhost.localdomain  xterm

在输出中strace xlsclients是这个块:

socket(AF_UNIX, SOCK_STREAM|SOCK_CLOEXEC, 0) = 3
connect(3, {sa_family=AF_UNIX, sun_path=@"/tmp/.X11-unix/X0"}, 20) = 0
getpeername(3, {sa_family=AF_UNIX, sun_path=@"/tmp/.X11-unix/X0"}, [124->20]) = 0
uname({sysname="Linux", nodename="$computer.$domain", ...}) = 0
access("$HOME/.Xauthority", R_OK) = 0
openat(AT_FDCWD, "$HOME/.Xauthority", O_RDONLY) = 4
fstat(4, {st_mode=S_IFREG|0600, st_size=54, ...}) = 0
read(4, "\1\0\0\tlocalhost\0\0010\0\22MIT-MAGIC-COOK"..., 4096) = 54
read(4, "", 4096)                       = 0
close(4)                                = 0
fcntl(3, F_GETFL)                       = 0x2 (flags O_RDWR)
fcntl(3, F_SETFL, O_RDWR|O_NONBLOCK)    = 0
fcntl(3, F_SETFD, FD_CLOEXEC)           = 0
poll([{fd=3, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=3, revents=POLLOUT}])
writev(3, [{iov_base="l\0\v\0\0\0\0\0\0\0\0\0", iov_len=12}, {iov_base="", iov_len=0}], 2) = 12
recvfrom(3, 0x555d386945b0, 8, 0, NULL, NULL) = -1 EAGAIN (Die Ressource ist zur Zeit nicht verfügbar)
poll([{fd=3, events=POLLIN}], 1, -1)    = 1 ([{fd=3, revents=POLLIN|POLLHUP}])
recvfrom(3, "\0\26\v\0\0\0\6\0", 8, 0, NULL, NULL) = 8
recvfrom(3, "No protocol specified\n\0\0", 24, 0, NULL, NULL) = 24
write(2, "No protocol specified\n", 22) = 22
shutdown(3, SHUT_RDWR)                  = 0
close(3)                                = 0

正如您所看到的,它打开套接字/tmp/.X11-unix/X0,读取$HOME/.Xauthority(注意:我用变量替换了所有路径),然后将 12 个字节写入套接字(可能是从 cookie 中获取的内容.Xauthority?)。

X 服务器响应“未指定协议”。

xauth list显示:

localhost/unix:0  MIT-MAGIC-COOKIE-1  ...string with 32 characters...

这看起来是正确的。 X 服务器缺少什么协议?

相关内容