在主机名更改后启动程序返回错误 _IceTransSocketUNIXConnect:无法连接到本地主机

Oat*_*lad 10 hostname sockets

在 14.04 上更改主机名后,我无法启动 unetbootin,尝试从 bash 启动应用程序返回:

_IceTransSocketUNIXConnect: Cannot connect to non-local host OLDHOSTNAME _IceTransSocketUNIXConnect: Cannot connect to non-local host OLDHOSTNAME Qt: Session management error: Could not open network socket

来自hostname cat /etc/hostnamecat /etc/hosts所有的输出确认主机名是正确的。自从进行更改以确认加载了新设置的所有内容后,我还重新启动了系统。

我不知所措,非常感谢任何帮助!另外,任何人都可以提供一些关于 IceTransSocketUNIXConnect 是什么以及它是如何工作的背景知识吗?是不是有点像温索克?

Eli*_*ynn 6

看来这个错误源于 ~/.ICEauthority 文件。您可以使用命令iceauth list列出您的条目。在我的情况下,包含旧主机名localhost,请将其替换为您的旧主机名。

例如iceauth list | grep localhost

XSMP "" unix/localhost@localdomain:/tmp/.ICE-unix/2640 MIT-MAGIC-COOKIE-1 7035f3aebe650bd72315b76819267a9d
XSMP "" local/localhost@localdomain:@/tmp/.ICE-unix/2640 -1 abe16eba34a1cf69087aff88bdd14a1a
ICE “”本地/本地主机@ LOCALDOMAIN:@ / TMP / .ICE-UNIX / 2640 MIT-MAGIC-COOKIE-1 1e69a0d48b1f1375167c79bffbbfa06e
ICE “” UNIX /本地主机@ LOCALDOMAIN:/tmp/.ICE-unix/2640 MIT- MAGIC-COOKIE-1 f91ab2525bf0000159161db41df1aa0c

2个选项:

  1. 简单 - 删除 ~/.ICEauthority 文件并重新启动机器或显示管理器。~/.ICEauthority 将使用您的新主机名重新生成。
  2. 高级 -iceauth remove用于删除错误条目,然后重新启动您的显示管理器(14.04 默认值 = lightdm)。只需将上面 grep 中的行复制粘贴到下面的示例中,它就会删除 XSMP 和 ICE 协议条目。
    • iceauth -v remove netid=unix/localhost@localdomain:/tmp/.ICE-unix/2640
    • iceauth -v remove netid=local/localhost@localdomain:@/tmp/.ICE-unix/2640
    • iceauth list | grep localhost # 确认它们已被移除。
    • sudo restart lightdm# @see this answer了解更多详情,或者如果这对你不起作用

进一步阅读man iceauth

列表

列出(打印)授权文件中的条目。您可以指定可选的修饰符,如下所示,以指定列出哪些条目。

列表 [protocol_name] [protocol_data] [netid] [authname]

消除

从授权文件中删除条目。

删除 [protocol_name] [protocol_data] [netid] [authname]

来源:
https : //superuser.com/questions/714015/accidentally-deleted-iceauthority-and-xauthority-files
https://codeyarns.com/2015/03/23/cannot-connect-to-non-local-host -error/
https://linux.die.net/man/1/iceauth
如何从命令行重启 X Window Server?