シェルで実行されているすべてのX11(ワーカー)アプリケーションには、「指定されたプロトコルなし」と表示されます。

シェルで実行されているすべてのX11(ワーカー)アプリケーションには、「指定されたプロトコルなし」と表示されます。

シェルで実行されているすべての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サーバーにはどのプロトコルがありませんか?

ベストアンサー1

おすすめ記事