- abrir
sudo visudo
- adicione
gitlab-runner ALL=(ALL) NOPASSWD: /bin/systemctl restart myapp
- agora você pode fazer
sudo /bin/systemctl restart myapp
e não solicitará a senha
Sou novo no systemd e gostaria de saber qual é a melhor estratégia para reiniciar meu aplicativo da web sempre que implantar nova versão.
Atualmente eu inicio o meu serviço no boot e ele apenas fica lá, porém eu gostaria que ele fosse reiniciado automaticamente sempre que eu mudo os arquivos pois sempre que eu empurrar para master no gitlab o runner pega os arquivos, compila e copia para o diretório correto . Então eu quero reiniciá-lo ou fechá-lo no entanto eu não sei como para reiniciar requer sudo.
Aqui está o meu arquivo de serviço
[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
Aqui está o meu arquivo ci para ser mais específico
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
e não solicitará a senha Se você pretende recarregar o systemd, procurar por unidades novas ou alteradas, adicione:
sudo systemctl daemon-reload