Reinicie o serviço do systemd na alteração do arquivo?

2

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
    
por sed 30.09.2016 / 15:27

2 respostas

1
  1. abrir sudo visudo
  2. adicione gitlab-runner ALL=(ALL) NOPASSWD: /bin/systemctl restart myapp
  3. agora você pode fazer sudo /bin/systemctl restart myapp e não solicitará a senha
por sed 30.09.2016 / 16:27
1

Se você pretende recarregar o systemd, procurar por unidades novas ou alteradas, adicione:

sudo systemctl daemon-reload
    
por Emanuele Bosimini 30.09.2016 / 15:36