У меня есть некоторый киоск Ubuntu, настроенная на основе Сервера Ubuntu 14.0.2, который запускает приложение на хроме. Киоск не имеет никакого интернет-соединения таким образом, обновления приложения должны быть сделаны вручную. Я хочу, чтобы процесс обновления был максимально легок поэтому, что я хочу представить, конечному пользователю способность просто включиться к ПК, Карта памяти и Карта памяти будут автоматически обнаружены и попытаются петлять. Например, я включаю Карту памяти, и Сервер Ubuntu пытается найти a update-2.3.sh
файл и выполняет его. Это update-2.3.sh
файл является просто файлом, который выполнит некоторые команды и файлы подкачки с USB на Жесткий диск, приводящий к новому коду. Я предполагаю, что это должно быть, работал с правами администратора или возможно просто установкой каталога кода к 777
должен быть достаточно?
Пример файлов в Карте памяти:
├───update-2.3.sh
├───/updates
| └───file1.php
| └───file2.php
└───/sub
└───another.php
Теперь, когда update-2.3.sh
файл выполнит определенные команды такой как mv
для переопределения существующих файлов (существует папка '~/code/app/updates), и некоторые команды как администратор:
sudo stop kiosk
(sudo?) mv updates ~/code/app/
sudo start kiosk
* не протестировали это mv
команда, я надеюсь, что она работает
То возможное выполнение такой вещи?
@ drifter104 правильный, вы можете добиться этого с помощью правил udev. У меня была аналогичная установка, когда я хотел подключить зашифрованный флэш-накопитель, и он автоматически запускал сценарий резервного копирования для резервного копирования определенных важных файлов с моего рабочего компьютера.
Я приведу вам пример того, что я сделал, чтобы получить у меня работает.
Согласно udev README, /etc/udev/rules.d/README:
Если порядок файлов в этом каталоге для вас не важен, рекомендуется просто называть файлы "descriptive-name.rules" так что они обрабатываются ПОСЛЕ всех пронумерованных правил в обоих каталог и /lib/udev/rules.d и, таким образом, переопределить все, что там установлено.
Поэтому я вызвал свой файл правил:
/etc/udev/rules.d/encrypted-backup.rules
В других руководствах будут установлены правила для определения номера модели флэш-накопителя и / или это серийный номер, но я не могу его использовать. Я не хотел, чтобы мои сценарии резервного копирования выполнялись до тех пор, пока зашифрованный том не будет смонтирован и расшифрован. Поэтому я делаю это из / sys / block / dm-3 (зашифрованный том), а не из самого аппаратного устройства (/ sys / block / sdb). После того, как я ввел свой пароль для расшифровки диска, ЗАТЕМ позвольте обратному сценарию сделать это. Я полагаю, вы захотите запускать с самого устройства.
Итак, создайте это правило udev, которое запускает успешное дешифрование и добавление 'dm-3'. В этом вышеупомянутом файле правил я сделаю следующие строки:
KERNEL=="dm-3", ACTION=="add", SUBSYSTEM=="block", RUN+="/usr/local/bin/backup.sh"
Специальное примечание: Если вы не добавите ACTION == "add", то скрипт будет запускать ваш скрипт при монтировании и размонтировании диска. :)
Теперь для обновления вы можете просто запустить сценарий обновления.
Надеюсь, эта информация вам поможет!