2015-05-08 4 views
1

Моя X-программа иногда должна запускаться с консоли, но по умолчанию на Ubuntu DISPLAY env var не установлен. Правильно ли включать DISPLAY=:0.0 startmyapp в сценарий запуска или как с этим бороться? Кто и когда и как отвечает за правильную настройку этой отображаемой переменной? Почему среда не готова к этому, если вы устанавливаете X или рабочий стол, который включает X?Как работать с DISPLAY =: 0.0

+0

Оболочка не может считать, что ваш дисплей всегда «localhost: 0.0» (что составляет: 0.0), так как ваш фактический дисплей может находиться в другом месте (даже на другом IP-адресе). Вы можете поместить определение $ DISPLAY где-нибудь в начале вашего процесса, но вы можете проверить, что $ DISPLAY уже не определен. – boardrider

ответ

0

Переменная DISPLAY управляет сеансом X, с которым приложение взаимодействует. В любой момент может быть много (или их нет). Вы не можете просто статически установить это значение и иметь его обязательно правильно.

Он правильно установлен внутри сеанса X (через среду), и вы можете установить его вручную вне этого, чтобы использовать тот же сеанс (но вы должны знать, какой сеанс вы хотите использовать для этого).

Если вы знаете, что это всегда будет ваша сессия, и вы знаете, что всегда будет сеанс, который вы хотите использовать, то да, вы можете просто установить его в сценарии запуска сервисов. В противном случае вам нужно придумать другой способ выяснить, какое значение имеет значение DISPLAY.

Смежные вопросы