셸에서 실행되는 모든 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바이트를 씁니다(아마 쿠키에서 얻은 것일 수도 있습니다 .Xauthority).

X 서버가 "지정된 프로토콜 없음"이라고 응답했습니다.

xauth list보여주다:

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

이것이 맞는 것 같습니다. X 서버에 어떤 프로토콜이 없습니까?

관련 정보