Неможливо запустити графічні програми з терміналу після оновлення до 15.10


10

Після оновлення до 15.10 неможливо запустити графічні програми з терміналу:

xxx@xxx:~$ gksudo wireshark
Invalid MIT-MAGIC-COOKIE-1 key
(gksudo:5532): Gtk-WARNING **: cannot open display: :0
xxx@xxx:~$ sudo -H wireshark
[sudo] password for xxx: 
Invalid MIT-MAGIC-COOKIE-1 key
** (wireshark:5535): WARNING **: Could not open X display
Invalid MIT-MAGIC-COOKIE-1 keyFailed to connect to Mir: Failed to connect to server socket: No such file or directory
Unable to init server: Could not connect: Connection refused

(wireshark:5535): Gtk-WARNING **: cannot open display: :0
xxx@xxx:~$ wireshark
Invalid MIT-MAGIC-COOKIE-1 key
** (wireshark:5569): WARNING **: Could not open X display
Invalid MIT-MAGIC-COOKIE-1 keyFailed to connect to Mir: Failed to connect to server socket: No such file or directory
Unable to init server: Could not connect: Connection refused

(wireshark:5569): Gtk-WARNING **: cannot open display: :0
xxx@xxx:~$ gedit
Invalid MIT-MAGIC-COOKIE-1 key
** (gedit:5570): WARNING **: Could not open X display
Invalid MIT-MAGIC-COOKIE-1 keyFailed to connect to Mir: Failed to connect to server socket: No such file or directory
Unable to init server: Could not connect: Connection refused

(gedit:5570): Gtk-WARNING **: cannot open display: :0
xxx@xxx:~$ sudo gedit
Invalid MIT-MAGIC-COOKIE-1 key
** (gedit:5574): WARNING **: Could not open X display
Invalid MIT-MAGIC-COOKIE-1 keyFailed to connect to Mir: Failed to connect to server socket: No such file or directory
Unable to init server: Could not connect: Connection refused

(gedit:5574): Gtk-WARNING **: cannot open display: :0

Моє маленьке дослідження вказувало на використання gksudo, але воно також не працює. Я також спробував деякі речі з xauth. В чому проблема? Дякую.


1
Спробуйте видалити .Xauthority- sudo rm -f ~/.Xauthorityа потім перезапустіть.
UniversallyUniqueID

Ні, те саме.
sssemil

Відповіді:


15

Як звичайний користувач, запустіть команду xhost +. Після цього спробуйте запустити графічну програму ще раз.

Це вимикає хост-контроль доступу на сервері X. Ось відповідна інформація зі сторінки man:

Програма xhost використовується для додавання та видалення імен хостів або імен користувачів до списку, дозволеного здійснювати з'єднання з сервером X.

+ Доступ надається всім, навіть якщо вони відсутні в списку (тобто контроль доступу вимкнено).


У мене виникли проблеми, коли я можу відкривати програми GUI з терміналу як root, але не як звичайний користувач. У такому випадку, запускаючи так, xhost +як rootмені дозволило потім запускати програми GUI як звичайний користувач.
Крейг Отіс

Це спрацювало! Дякую!
Мухаммед бен Юсрат

3

Дивно, але export DISPLAY=:1допомогло. Ура.


2
У вас працює кілька X-дисплеїв чи щось таке? За замовчуванням має бути:0
UniversallyUniqueID

2
точно таке саме питання (16.04 в моєму випадку); на жаль, це не працює.
adam.smith

Ні, тільки один. ": 0" завжди був за замовчуванням, але щось змінилося після оновлення.
sssemil

1
У моєму випадку встановлення DISPLAY на: 0 вирішило це (тоді як: 1 не зробив)
mbello

У моєму випадку встановлення DISPLAY на: 2 вирішило це. Просто треба продовжувати намагатися.
zkytony

0

У моєму випадку, та ж проблема знайшла після поновлення одного пакета gnome-shellчерез synaptic-package-manager. Відразу після наступного входу я не зміг отримати доступ до жодної частини GUI ОС. Багато пошуків, нарешті,

коли я використовував apt install gdm3термінал режиму відновлення, мені вдалося знайти запит на вхід після завантаження системи (Тільки термінал, а не графічний інтерфейс).

Після цього я спробував apt install gnomeвстановити цілу купу компонентів разом, як тільки завантаження закінчилося, я зміг перевести свою ОС в режим GUI.

Якщо ви не отримуєте підказку для входу, спробуйте виконати вищезазначений крок у режимі відновлення. В іншому випадку спробуйте встановити Gnome, який оновлює gdm3 разом.


0

Попередження: Неправильне використання xhost може ненавмисно надати кожному хосту в Інтернеті повний доступ до сервера відображення X.

Як правило, ви не повинні вимикати хост-контроль доступу на сервері X, якщо ви не знаєте, що ви робите. Натомість слід дозволити лише ті речі, які потребують доступу.

Рішення:

Виконати: xhost +si:localhost:root

Наведене вище рішення також працює для користувачів Wayland, які виконують підвищений додаток XWayland.

При спробі запуску програми XWayland з підвищеними дозволами ви можете отримати таку помилку:

No protocol specified
Unable to init server: Could not connect: Connection refused
Could not parse arguments: Cannot open display:
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.