Как запустить X программ снаружи X сессий (например, от консоли или SSH) [закрытый]

Не используйте инструментарий Разработчика, зная консалтинговую фирму, которая создает и поддерживает это. Я не доверяю ничему созданному Clarity Consulting, которая является, кто создал тот Инструментарий (ошибки, методы, которые являются слишком длинным, сверхкодированным и странным & неэффективные методы кодирования). Следует иметь в виду, что Clarity хорошо разбирается в использовании DataSets во многих их решениях собственной разработки (Хорошие разработчики, и архитекторы НЕ ИСПОЛЬЗУЮТ НАБОРЫ ДАННЫХ, неважно, насколько большой или маленький приложение..., они - спам.). Предоставленный нет никаких DataSets в той платформе (Слава Богу), но это - менталитет позади той фирмы.

На самом деле, обертка самокрутки для Facebook, если Вы хотите полный контроль, даже если это - больше работы. Иначе я пошел бы с API Facebook.NET, чтобы мне кажется очень хорошо кодированным и был сделан гуру MS.

35
задан Community 23 May 2017 в 12:17
поделиться

2 ответа

Короткий ответ заключается в том, что вам нужно установить переменную среды DISPLAY , после чего приложение запустится.

Длинный ответ заключается в том, что у нас есть Xauth , и если вы не работаете как один и тот же пользователь на одном компьютере, это, вероятно, не будет работать, если вы не экспортируете учетные данные Xauth из учетной записи, на которой запущен X-сервер, в учетную запись, на которой запущен X-клиент. ssh -X делает это за вас, поэтому это замечательно, но ручная процедура включает запуск xauth extract - $ DISPLAY в учетной записи X-сервера и загрузку этих данных в xauth merge - в учетной записи клиента. (Предупреждение: данные являются двоичными.)

В современных системах Linux существует один сеанс X по адресу: 0, а файл авторитетных данных X11 всегда имеет вид $ HOME /. Xauthority , поэтому вы можете чаще всего устанавливать две переменные среды, например, в Bash:

export XAUTHORITY=/home/$your_username/.Xauthority
export DISPLAY=':0'
43
ответ дан 27 November 2019 в 07:08
поделиться

В результате вам необходимо знать отображение X (помещенное в переменную среды DISPLAY ) и волшебный файл cookie (помещенный в файл с именем файла в XAUTHORITY переменная среды).

Быстрый и грязный способ

В системе, в которой запущен X, если вы являетесь пользователем root или тем же пользователем, который вошел в X, просто предположите, что общие файлы отображения и cookie (работает практически на любой стандартной настольной установке любого дистрибутива).

env DISPLAY=:0 XAUTHORITY=/home/whoever/.Xauthority /path/to/my/X/program

Более верный способ

Найдите их в среде уже работающей X-программы. Опять же, если вы являетесь пользователем root или тем же пользователем, который вошел в систему, это сообщит вам (если пользователь использует GNOME):

cat /proc/`pgrep -f ^x-session-manager`/environ \
  | ruby -ne 'puts $_.split("\0").select { |e| e =~ /^(DISPLAY|XAUTHORITY)=/ }'
17
ответ дан 27 November 2019 в 07:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: