Запуск программ после изменения имени хоста возвращает ошибку _IceTransSocketUNIXConnect: не удалось подключиться к локальному хосту

9

После изменения имени хоста 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?

Oatlad
источник

Ответы:

5

Похоже, эта ошибка связана с файлом ~ / .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 MIT-MAGIC-C -1 abe16eba34a1cf69087aff88bdd14a1a
ICE "" local / localhost @ localdomain: @ / tmp / .ICE-unix / 2640 MIT-MAGIC-COOKIE-1 1e69a0d48b1f1375167c79bffbbfa06e
ICE "unix / localhost-x.mp// Mhost- @mp26/ localhost: local 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:

список

Перечислите (распечатайте) записи в авторитетном файле. Вы можете указать дополнительные модификаторы, как указано ниже, чтобы указать, какие записи перечислены.

list [protocol_name] [protocol_data] [netid] [authname]

Удалить

Удалить записи из авторитетного файла.

удалить [имя_порта] [данные_порта] [нетид] [имя автора]

источники:
/superuser/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 из командной строки?

Элайджа Линн
источник