В настоящее время я запускаю несколько небольших веб-приложений на небольшом сервере, и я настроил их для запуска и перезапуска с помощью службы systemctl, я специально сделал эти приложения службой systemctl, поэтому они автоматически запускаются при загрузке системы и перезапускаются, если они крушение.
Теперь я хочу также обновить и создать приложения на сервере, как только в удаленном репозитории появится более новая версия, сам сервер не может проверить, есть ли в репозитории более новая версия, сервер также не может запускать скрипты, и установка службы systemctl для запуска скрипта не приведет к повторному перезапуску сервиса в случае его сбоя, поскольку скрипт все еще будет работать.
Как мне правильно подойти к этой проблеме? Существуют ли какие-либо инструменты, которые делают это специально?
Некоторая другая информация:
- Приложения сделаны на C#, с .Net 5.0
- Репозиторий является простым общедоступным, размещенным на Github.
Моя текущая структура папок следующая.
.
`-- приложения
|
|-- приложение1
| |-- build/ (Здесь находится двоичный файл, запущенный из службы)
| |-- источник/
| `-- application1.service
|
|-- приложение2
| |-- построить/
| |-- источник/
| `-- приложение2.сервис
|
`-- приложение3
|-- построить/
|-- источник/