Запуск bash-скрипта из xsession для переключения автозагрузки программ

Итак, передо мной стоит интересная задача - запустить 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.

1116 Это сработало очень хорошо.

Перейдем к новой задаче:

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

В попытке сделать это я изменил команду 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/ возвращается, я должен быть в состоянии переключить, в каком режиме устройство загружается в

В его нынешнем виде у меня есть две проблемы, которые мне нужно решить.

  1. Мое выражение if / else всегда соответствует ложному ..., поэтому оно не загружается в режиме киоска, даже если ответ curl равен true.

  2. Когда он загружается и запускает команды после оператора else, он не соответствует загрузке по умолчанию. Отсутствует верхняя строка меню, а также значки и параметры настроек в правом верхнем углу экрана.

Другие вещи, о которых стоит упомянуть:

  • Я действительно знаю, что он подключен к Интернету, и запрос curl срабатывает нормально во время тестирования (с выводом и сохранением в файл).

  • У меня настроен автоматический вход в систему пользователя киоска, у которого нет разрешений sudo, и который проводил тесты в этих условиях.


Любая помощь с этим приветствуется. В этот момент я часами гуглял и пробовал разные вещи, и мне еще очень повезло.

Спасибо.

2
задан 24 May 2016 в 23:23

1 ответ

Повторно анализируйте свою проблему. Вы могли легко записать простой сценарий Perl для слушания согласованного, которое порт (например, 30201) Видит этот пример из thegeekstuff.com . Имейте часть сервера, принимают 3 команды: "киоск", "рабочий стол" и "выход". "киоск" и "рабочий стол" устанавливали/очищали флаг как /var/run/kiosk-mode. Запустите сервер в /etc/init. Затем Вы можете просто if [[ -f /var/run/kiosk-mode ]] ; then ... в Вашем сценарии.

0
ответ дан 25 May 2016 в 09:23

Другие вопросы по тегам:

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