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

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

在 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 的背景知识以及它的工作原理吗?它和 Winsock 有什么相似之处吗?

答案1

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

例如iceauth list | grep localhost

XSMP "" unix/localhost@localdomain:/tmp/.ICE-unix/2640 MIT-MAGIC-COOKIE-1 7035f3aebe650bd72315b76819267a9d
XSMP "" 本地/localhost@localdomain:@/tmp/.ICE-unix/2640 MIT-MAGIC-COOKIE-1 abe16eba34a1cf69087aff88bdd14a1a
ICE "" 本地/localhost@localdomain:@/tmp/.ICE-unix/2640 MIT-MAGIC-COOKIE-1 1e69a0d48b1f1375167c79bffbbfa06e ICE ""
unix/localhost@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# @看这个答案了解更多详情,或者如果这对你不起作用

进一步阅读man iceauth

列表

列出(打印)权威文件中的条目。您可以指定以下可选修饰符来指定列出哪些条目。

列表 [ 协议名称 ] [ 协议数据 ] [ 网络标识 ] [ 身份验证名称 ]

消除

从规范文件中删除条目。

删除 [ 协议名称 ] [ 协议数据 ] [ 网络标识 ] [ 身份验证名称 ]

来源:
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?

相关内容