Итак, передо мной стоит интересная задача - запустить Ubuntu 16.04.
Первоначально я создал файл .xsession, который запускался Exec=google-chrome --kiosk http://some-url.com
для загрузки в качестве устройства киоска.
Вышеупомянутый файл .xsession существует в /usr/share/xsessions/
и для него установлен сеанс по умолчанию в файле конфигурации lightdm, найденном в /usr/share/lightdm/lightdm.d.conf/50-ubuntu.conf
.
Я хочу иметь возможность удаленно переключать, загружается ли устройство в режиме киоска.
В попытке сделать это я изменил команду Exec для запуска сценария bash, который я написал, чтобы определить, следует ли загружаться как киоск.
Следующий файл выполняется из файла .xsession:
#! /bin/bash
KIOSK_MODE=$(curl http://some-url.com/bootInKioskMode/)
if [ $KIOSK_MODE = "true" ] ; then
google-chrome --kiosk http://some-url.com
else
gnome-session --session=ubuntu &
unity
fi
Идея состоит в том, что, поскольку я могу контролировать то, что http://some-url.com/bootInKioskMode/ возвращается, я должен быть в состоянии переключить, в каком режиме устройство загружается в
В его нынешнем виде у меня есть две проблемы, которые мне нужно решить.
Мое выражение if / else всегда соответствует ложному ..., поэтому оно не загружается в режиме киоска, даже если ответ curl равен true
.
Когда он загружается и запускает команды после оператора else
, он не соответствует загрузке по умолчанию. Отсутствует верхняя строка меню, а также значки и параметры настроек в правом верхнем углу экрана.
Другие вещи, о которых стоит упомянуть:
Я действительно знаю, что он подключен к Интернету, и запрос curl срабатывает нормально во время тестирования (с выводом и сохранением в файл).
У меня настроен автоматический вход в систему пользователя киоска, у которого нет разрешений sudo, и который проводил тесты в этих условиях.
Любая помощь с этим приветствуется. В этот момент я часами гуглял и пробовал разные вещи, и мне еще очень повезло.
Спасибо.
Повторно анализируйте свою проблему. Вы могли легко записать простой сценарий Perl для слушания согласованного, которое порт (например, 30201
) Видит этот пример из thegeekstuff.com . Имейте часть сервера, принимают 3 команды: "киоск", "рабочий стол" и "выход". "киоск" и "рабочий стол" устанавливали/очищали флаг как /var/run/kiosk-mode
. Запустите сервер в /etc/init
. Затем Вы можете просто if [[ -f /var/run/kiosk-mode ]] ; then ...
в Вашем сценарии.