Перезапустить systemd сервис на изменение файла?

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

В настоящее время я запускаю свой сервис на начальную загрузку, и это просто находится там, однако я хотел бы, чтобы это перезапустило автоматически каждый раз, когда я изменяю файлы с тех пор каждый раз, когда я продвигаю ведущему устройству на gitlab, бегун получает файлы, компиляции и копирует его для исправления каталога. Затем я хочу перезапустить его, или закрыть его однако я не знаю, как с тех пор для перезапуска его требует sudo.

Вот мой сервисный файл

[Unit]
After=mongod.service

[Service]
WorkingDirectory=/var/app/mywebsite/Web
Environment="HOME=/home/stan"
Environment="DOTNET_CLI_TELEMETRY_OPTOUT=1"
Environment="DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1"
ExecStart=/usr/bin/dotnet run -c Release -p /var/app/mywebsite/Web/project.json

[Install]
WantedBy=multi-user.target

Вот мой ci файл, чтобы быть более конкретным

before_script:
    - set DOTNET_CLI_TELEMETRY_OPTOUT=1
    - set DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
    - set HOME=/home/stan
    - cd Web
    - dotnet restore
    - dotnet build -c Release
    - cd ..
copy:
    script:
        - cp -R ./* /var/app/mywebsite/ # After this I would like to restart the website service
4
задан 30 September 2016 в 16:27

2 ответа

  1. открывают sudo visudo
  2. добавляют gitlab-runner ALL=(ALL) NOPASSWD: /bin/systemctl restart myapp
  3. теперь, можно сделать sudo /bin/systemctl restart myapp, и он не запросит пароль
1
ответ дан 1 December 2019 в 09:32

Если Вы означаете перезагружать systemd, сканирующий для новых или измененных единиц затем добавьте:

sudo systemctl daemon-reload
4
ответ дан 1 December 2019 в 09:32

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

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