У меня проблема с настройкой systemd. У меня есть служба, которая запускает мою среду MEAN-Stack на сервере.
[Ед. изм]
Описание=Фронтенд-сервер
After=network.target backend.service
[Оказание услуг]
Тип=простой
Пользователь = средний
ExecStart=/somepath/server.sh
Перезапустить = всегда
Рабочий каталог =/какой-то путь/
[Установить]
WantedBy=многопользовательская.цель
Теперь я добавил конвейер автоматического развертывания, и чтобы заставить его работать, я добавил файлы .path и .service для каждой службы, чтобы перезапускать их при развертывании.
[Дорожка]
Unit=frontend-watcher.service
PathChanged=/какой-то путь
[Установить]
WantedBy=многопользовательская.цель
[Ед. изм]
Описание=перезапуск внешнего интерфейса
После=network.target
[Оказание услуг]
Тип = ваншот
ExecStart=/usr/bin/systemctl перезапустить frontend.service
[Установить]
WantedBy=многопользовательская.цель
Пока это работает с одной проблемой. Настройка срабатывает слишком быстро и слишком часто, потому что наблюдатель срабатывает для каждого загруженного файла. Из-за этого появляется сообщение об ошибке, но оно все еще работает, и файлы обновляются (веб-сайт запускает новый код).
Теперь мне было интересно, есть ли способ изменить поведение. В идеале срабатывать только после завершения загрузки. Моя единственная идея (новичок на сервере) - загружать последний файл после каждого развертывания и смотреть только этот файл. Таким образом, он сработает только в конце один раз. Но я думал, что может быть лучший способ.