Je suis nouveau sur systemd et aimerais savoir quelle est la meilleure stratégie pour redémarrer mon application Web chaque fois que je déploie une nouvelle version.
Actuellement, je démarre mon service au démarrage et il reste là. Cependant, je souhaite qu'il redémarre automatiquement chaque fois que je modifie les fichiers, car chaque fois que je Push to master sur gitlab, le coureur récupère les fichiers, les compile et les copie dans le bon répertoire. Ensuite, je veux le redémarrer ou le fermer, mais je ne sais pas comment, car le redémarrer nécessite Sudo.
Voici mon dossier de service
[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
Voici mon fichier ci pour être plus précis
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
Sudo visudo
gitlab-runner ALL=(ALL) NOPASSWD: /bin/systemctl restart myapp
Sudo /bin/systemctl restart myapp
et il ne demandera pas de mot de passeSi vous voulez recharger systemd, rechercher des unités nouvelles ou modifiées, ajoutez:
Sudo systemctl daemon-reload