Не удается запустить программы с графическим интерфейсом из командной строки из-за неправильной переменной DISPLAY

Я использую Ubuntu 18.10 и не могу запускать программы с графическим интерфейсом через командную строку. Это относится к subl (для возвышенного текста) и Firefox. При попытке запустить Firefox через CLI; это печатает: Invalid MIT-MAGIC-COOKIE-1 key,

Моя среда показывает:

➜ echo $DISPLAY
:0.0

И у меня есть файл с этим cookie:

➜ echo $XAUTHORITY 
/run/user/1000/gdm/Xauthority
➜ cat /run/user/1000/gdm/Xauthority
voltaireMIT-MAGIC-COOKIE-1OZ��8�ص������v�voltaireMIT-MAGIC-COOKIE-1OZ��8�ص������v%    

Также:

➜ xauth list
voltaire/unix:  MIT-MAGIC-COOKIE-1  4f5abfd438eb88d8b586f0fbad8aee76
#ffff#766f6c7461697265#:  MIT-MAGIC-COOKIE-1  4f5abfd438eb88d8b586f0fbad8aee76

Похоже, что запущены два процесса Xorg:

➜ ps aux | grep xorg
root      1400  0.0  0.1 213748 48068 tty1     Sl+  09:29   0:00 /usr/lib/xorg/Xorg vt1 -displayfd 3 -auth /run/user/121/gdm/Xauthority -background none -noreset -keeptty -verbose 7 -core
root      4701  1.9  0.5 658612 195732 tty2    Sl+  09:30   1:50 /usr/lib/xorg/Xorg vt2 -displayfd 3 -auth /run/user/1000/gdm/Xauthority -background none -noreset -keeptty -verbose 7 -core

Ранее я установил lightdm для решения проблемы с входом в систему, и в моей системе установлены текущие графические драйверы NVIDIA. Я думаю, это очень связано?

Когда я бегу:

DISPLAY=:1 subl

оно работает!

Что я мог сделать, чтобы это исправить?


Обновить

я удалил ~/.Xauthority и перезагрузился, но проблема все еще остается.

1 ответ

Решение

Проблема заключалась в том, что DISPLAY был неправильно установлен на :0.0 с помощью файла конфигурации оболочки. После того как я удалил это, запуск программ из оболочки снова стал возможен.

Вы можете использовать эту команду для поиска по всем файлам конфигурации оболочки по умолчанию:

grep "DISPLAY" ~/.bashrc ~/.profile ~/.bash_profile ~/bash.login \
               ~/.bash_aliases /etc/bash.bashrc /etc/profile \
               /etc/profile.d/* /etc/environment 2> /dev/null

На самом деле существует два процесса Xorg, что является ожидаемым поведением, поэтому это не должно быть проблемой само по себе.

Так же .Xauthority файл не кажется необходимым.

Другие вопросы по тегам