Ответы:
xhost
Команда нуждается в активном Х - сервер для запуска, он может работать на экране входа в систему , например , когда lightdm
нагрузки. Вы можете включить его, отредактировав /etc/lightdm/lightdm.conf
и добавив строку:
display-setup-script=/home/user/bin/xhost.sh
пример /etc/lightdm/lightdm.conf
файла:
[SeatDefaults]
greeter-session=unity-greeter
user-session=ubuntu
display-setup-script=/home/user/bin/xhost.sh
пример /home/user/bin/xhost.sh
файла:
#!/bin/bash
xhost +
Он работает на Ubuntu 12.04.1 LTS, и это было необходимо для того, чтобы включить приложение Java, которое нуждалось в X и было запущено Tomcat 6.
Это сработало для меня:
Редактировать ~/.xinitrc
:
export DISPLAY=":0.0"
xhost +
openbox
Примечание: в моей конкретной настройке я использую только openbox . Обычно этот файл пуст или отсутствует в Ubuntu. Я предполагаю, что вы можете удалить строку "openbox", и она будет работать, но у меня нет способа проверить это прямо сейчас. Если это не работает, замените последнюю строку для вашей команды оконного менеджера.
У меня была такая же проблема с Ubuntu 17.10. Возможно, моя система не была правильно настроена. Во всяком случае, в моем случае я добавил
xhost + SI:localuser:root > /dev/null
в нижней части моего ~/.bashrc
файла, и это сработало. Я не знаю, является ли это угрозой безопасности. Я разделяю это в случае, если кто-то еще находится в той же ситуации, и верю, что добавление root в список распространенных пользователей X-сервера должно быть в порядке.
Это предлагается здесь http://ubuntuhandbook.org/index.php/2017/10/ubuntu-17-10-tip-graphical-apps-doesnt-launch-via-root-sudo-gksu/
Вы можете сначала проверить это непосредственно на терминале:
$ xhost + SI:localuser:root
$ xhost -
Вторая строка гарантирует, что только те, кто в списке, имеют доступ к X-серверу. Затем попробуйте «Редактировать как администратор», после щелчка правой кнопкой мыши по файлу или выполнения.
$ pkexec gedit
Если это не работает, бессмысленно делать команду постоянной в ~ / .bashrc.
Чтобы быть более точным, я сначала выполнил
$ xhost
чтобы увидеть, какие пользователи имели доступ к X-серверу. Я видел, что формат был SI:localuser:dominic
где dominic
мой логин. Итак, я использовал тот же формат, SI:localuser:root
чтобы добавить root
пользователя.
Вот вариант ответа @ GeorgeLitos с этими изменениями:
/etc/lightdm/lightdm.conf
, так как это системный файл, который может быть перезаписан при обновлении системы. Вместо этого используйте каталог расширений /etc/lightdm/lightdm.conf.d/
. Это также означает, что другие настройки не должны дублироваться там.Просто создайте файл (как пользователь root) /etc/lightdm/lightdm.conf.d/xhost.conf
со следующим содержимым:
[SeatDefaults]
display-setup-script=xhost +
Это работает на Ubuntu 16.04.5 LTS.
Отредактируйте файл /etc/rc.local
(с помощью sudo
) и добавьте команду перед последней командой ( exit 0
).