Use systemd para parar um serviço enquanto outro executa

1

Estou configurando um serviço systemd para renovar meus certificados SSL do letsencrypt. O que eu gostaria de trabalhar é que o timer do systemd pare o serviço nginx, execute meu script de renovação de certificado e reinicie o nginx.

O systemd tem alguma maneira inteligente de fazer isso? Ou eu só preciso fazer a parada relevante e começar a ação no próprio script?

    
por Tom 24.08.2016 / 13:40

3 respostas

2

Does systemd have some clever way of doing this? Or do I just need to do the relevant stop and start action in the script itself?

Não, não há "maneira inteligente". Basta colocar

systemctl stop <whatever>

e

systemctl start <whatever>

no seu script de renovação, conforme necessário,

    
por 25.08.2016 / 05:32
2

O Letsencrypt tem ganchos pré e pós-renovação.

Adicionando isto

[renewal-params]
# Other settings
pre-hook=systemctl stop <service name>
post-hook=systemctl start <service name>

para /etc/letsencrypt/renewal/<domain name>.conf irá parar e iniciar o serviço toda vez que você executar certbot renew .

    
por 08.01.2017 / 17:10
-1

Se eu entendi corretamente, você deseja programar o nginx stop para reduzir o tempo de inatividade.

Eu não sei sobre o sistema D, mas com qualquer comando unix você pode usar "at" para construir seu próprio comando.

Por exemplo


echo "systemctll stop nginx && mv /etc/my/cert/new.cert && systemctll start nginx" | at -m 5:00
    
por 24.08.2016 / 14:02

Tags