主機名稱變更後啟動程式傳回錯誤 _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/hostname和的輸出cat /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 "" localbd72315b76819267a9d XSMP "" local/localhost@localm. -1 abe16eba34a1cf69087aff88bdd14a1a
ICE“”本地/localhost@localdomain:@/tmp/.ICE-unix/2640 MIT-MAGIC-COOKIE-1 1e69a0d48b1f1375167696969
unix/2640麻省理工學院-魔法餅乾-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

清單

列出(列印)規格文件中的條目。您可以指定以下可選修飾符來指定要列出哪些條目。

清單 [ 協定名稱 ] [ 協定資料 ] [ 網路 ID ] [ 驗證名稱 ]

消除

從規範文件中刪除條目。

刪除 [ 協定名稱 ] [ 協定資料 ] [ 網路 ID ] [ 身份驗證名稱 ]

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

相關內容