我无法在服务器的另一台显示器上启动xterm。 我目前在Fedora 26上login到Gnome会话。
[myuser@localhost ~]$ xhost + access control disabled, clients can connect from any host [myuser@localhost ~]$ su - another_user
然后我得到shell提示符,我做:
[another_user@localhost ~]$ export DISPLAY=localhost:0.0 [another_user@localhost ~]$ xterm xterm: Xt error: Can't open display: localhost:0.0 [another_user@localhost ~]$
我的防火墙被禁用,所以我做了一个跟踪:
[another_user@localhost ~]$ strace -f xterm
我发现这一点:
..... mmap(NULL, 2168280, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f27bd6a2000 mprotect(0x7f27bd6ad000, 2093056, PROT_NONE) = 0 mmap(0x7f27bd8ac000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xa000) = 0x7f27bd8ac000 mmap(0x7f27bd8ae000, 21976, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f27bd8ae000 close(3) = 0 mprotect(0x7f27bd8ac000, 4096, PROT_READ) = 0 munmap(0x7f27c141b000, 216574) = 0 open("/etc/hosts", O_RDONLY|O_CLOEXEC) = 3 fstat(3, {st_mode=S_IFREG|0644, st_size=336, ...}) = 0 read(3, "127.0.0.1\t\tlocalhost.localdomain"..., 4096) = 336 read(3, "", 4096) = 0 close(3) = 0 socket(AF_INET, SOCK_STREAM|SOCK_CLOEXEC, IPPROTO_TCP) = 3 setsockopt(3, SOL_TCP, TCP_NODELAY, [1], 4) = 0 setsockopt(3, SOL_SOCKET, SO_KEEPALIVE, [1], 4) = 0 connect(3, {sa_family=AF_INET, sin_port=htons(6000), sin_addr=inet_addr("127.0.0.1")}, 16) = -1 ECONNREFUSED (Connection refused) close(3) = 0 open("/usr/share/X11/XtErrorDB", O_RDONLY) = -1 ENOENT (No such file or directory) getuid() = 1002 geteuid() = 1002 getuid() = 1002 write(2, "xterm: ", 7xterm: ) = 7 write(2, "Xt error: Can't open display: lo"..., 44Xt error: Can't open display: localhost:0.0 ) = 44 exit_group(1) = ? +++ exited with 1 +++ [another_user@localhost ~]$
我该如何解决? 我不应该使用端口6000,因为X应该使用套接字,不是吗?