Я распространяю веб -приложение Django/Python в качестве пакета Debian на Raspberry Pi. Я хотел бы внедрить кнопку «Обновление» в веб -интерфейсе, которая запускает обновление Sudo Apt && sudo apt -y установить my_app для обновления пакета приложений. Пробое:
Кнопка обновления отправляет сообщение в бэкэнд Django. SystemD Service и работает как пользователь, не являющийся root. Сервер работает и работает
[*] Обновление - сервер получил команду POST, чтобы запустить обновление
[*] 404/500 - Сервер в настоящее время перезагружается
Ошибки 404/500 попадают в интерфейс JS и интерпретируют, что сервер является «обратно». /> проблема: < /strong> < /p>
Этот подход работает только в первый раз после перезагрузки. При последующих попытках служба OneShot не работает снова. Несмотря на то, что в неудачном состоянии нет услуг, я попытался сбросить сервис, используя SystemCtl Reset-Failed , но это не решает проблему. /> Вопрос: < /strong> < /p>
Что является надежным шаблоном дизайна для того, чтобы приложение Django запустило свое собственное обновление через кнопку GUI, учитывая ограничения APT, SystemD и факт, что работающий код заменяется? Конфликты между перезагрузками SystemD и работающими службами < /li>
Разрешить повторяющиеся обновления без необходимости перезагрузки < /li>
Работайте чисто с упаковкой Debian и постоинстовыми сценариями < /li>
< /ul>
Я не собираюсь настаивать на использовании услуги OneShot, что просто подход. Файл службы моего устройства: < /p>
[Unit]
Description=Update specific ODIN16 GUI and collateral packages
After=network.target
[Service]
Type=oneshot
ExecStart=/bin/sh -c 'apt update && apt-get install -y my_app'
StandardOutput=append:/var/log/gui-package-update.log
StandardError=append:/var/log/gui-package-update.log
User=root
Group=root
RemainAfterExit=no
Restart=no
[Install]
WantedBy=multi-user.target
Подробнее здесь: https://stackoverflow.com/questions/796 ... self-using
Как может приложение Django на Raspberry Pi безопасно вызвать обновление самого себя с помощью APT и SystemD? ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение