Рейтинг:1

Как запустить приложение с графическим интерфейсом в окне openbox за пределами его файла автозапуска

флаг ke

TL;DR

Запуск сервера Ubuntu 20.04 с xserver-xorg x11-xserver-utils xinit openbox установлен. Я могу поместить команду в файл автозапуска openbox, и она работает хорошо. Теперь я хочу запустить openbox, затем из демона, а в какой-то момент запустить приложение для запуска в текущем открытом окне openbox. Как получить дескриптор текущего окна openbox?

Подробности

Я следил за этим очень полезно руководство по настройке киоска, это для Raspberry Pi, я адаптировал его для работы на сервере Ubuntu.

Все работает хорошо; гостевой пользователь автоматически входит в систему при загрузке, затем запускается файл .profile гостевого пользователя startx -- -нокурсор, а внутри файла автозапуска openbox есть команда для запуска хрома. Счастливые дни.

Теперь я хочу переместить команду для запуска хрома из файла автозапуска openbox и поставить ее под контроль супервизора (так что, если хром выйдет из строя, супервизор автоматически перезапустит хром).

К сожалению, когда супервизор пытается запустить хром, работающий как гостевой пользователь, ему не удается отобразить окно openbox. Я проверил, что в окне openbox для $DISPLAY установлено значение «: 0».

Я предполагаю, что в игре есть некоторые другие факторы, и это не только дисплей, который мне нужно установить, но, возможно, оконный менеджер, клиент графического интерфейса или что-то в этом роде.

Файл конфигурации супервизора:

[программа: хром]
среда = ДИСПЛЕЙ = ": 0"
команда = хром-браузер --киоск
начальные секунды=6
пользователь = гость
stderr_logfile=/var/log/supervisor/chromium_stderr.log
stdout_logfile=/var/log/supervisor/chromium_stdout.log
stderr_logfile_maxbytes = 1 МБ
stderr_logfile_backups=3

Поскольку он работает как гостевой пользователь, у него практически нет небольших разрешений. Я проверил журнал ошибок супервизора для приложения хрома, и оно не открывалось. /var/log/Xorg.1.log, поэтому я chmod 777 (он остается на 0 байтах, так как не растет), теперь получаю:

xauth: тайм-аут в файле полномочий блокировки /.Xauthority

Рейтинг:0
флаг pl

В Ubuntu 20.04 вам не нужен Supervisord, чтобы убедиться, что программа перезапущена. Вы можете использовать Systemd для перезапуска отказавшего демона. Возможно, вам стоит попробовать этот подход.

[Оказание услуг]
Перезапуск = при сбое
Рестартсек=10с

Насколько я понимаю, когда вы получаете такие ошибки:

 тайм-аут в файле полномочий блокировки /.Xauthority

Это означает, что этот файл заблокирован другим приложением.Чтобы снять блокировку, я думаю, вы можете использовать опцию -b, но я не уверен. Другим решением было бы просто удалить его...

Также попробуйте настроить журналы на /tmp за /var/log/Xorg.1.log возможно, у вашего приложения нет разрешений на /вар/журнал но у меня есть сомнения...

Просто мои 2 цента...

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.