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