Команда xhost в скрипте завершается ошибкой при выполнении initctl

По какой-то причине я должен выполнить xhost +SI:localuser:root разрешить графический интерфейс для root пользователь. Я поместил эту команду в сценарий оболочки, который будет выполняться при запуске upstart, Когда я выполняю эту команду или этот скрипт вручную как другой пользователь, он работает нормально. Но когда этот скрипт выполняется upstart эта команда не работает.

Я также попытался выполнить эту команду, кроме root пользователь в скрипте как

   sudo -H -s otheruser xhost +SI:localuser:root

Это также не работает.

Как я могу позволить графический интерфейс root пользователь при запуске системы?

Спасибо за ваше время!

1 ответ

Решение

"GUI для root Пользователь "считается вредным *, но вот объяснение вашей проблемы:

xhost сообщает X-серверу, что он может / не может принимать соединения от других хостов.

когда upstart запускает ваш скрипт, ни один пользователь не вошел в систему и не запустил X-сервер. Следовательно, xhost не с кем поговорить

Вам нужно отложить исполнение вашего xhost Команда, пока вы не вошли в систему. xhost также необходимо определение DISPLAY переменная окружения (чтобы он мог найти X-сервер). man X показывает формат DISPLAY: hostname:displaynumber.screennumber,

Ответ: вы не можете бежать xhost через upstart - контекст не правильный.

    • root всесильный, и графические программы не показывают вам все, что они делают.
Другие вопросы по тегам