Usando o timer do systemd para desligar e iniciar o serviço

0

Eu criei um arquivo ServiceName.service.

[Unit]
Description=ServiceName Service
After=network.target

[Service]
ExecStart=/usr/local/bin/<scriptName>.sh

E criei um arquivo ServiceName.timer.

[Unit]
Description=ServiceName timer to start weekly

[Timer]
#reboot
OnBootSec=1min
#weekly
OnUnitActiveSec=1w
Unit=ServiceName.service

[Install]
WantedBy=multi-user.target

O arquivo .sh inicia uma página da Web e uma pesquisa com novos resultados para a página da Web que precisa ser acessível por uma semana e, em seguida, realiza uma nova pesquisa.

Os scripts iniciam na inicialização, de modo que essa parte funcione. Mas parece que o script tem que desligar o serviço antes que a função timer funcione. Eu não tenho ideia de como fazer isso.

    
por 3571 25.07.2018 / 12:03

1 resposta

0

Bem-vindo ao Unix & LinuxStackExchange.

Primeiro, você provavelmente deseja que After=network-online.target verifique se a rede está totalmente ativada.

Segundo, você deve systemctl enable ServiceName.timer para que o temporizador seja iniciado na inicialização. Você fez isso? Use systemctl list-timers para verificar quais estão em execução.

Em terceiro lugar, atualize seu arquivo de timer para usar WantedBy=timers.target , que é o destino recomendado.

    
por 25.07.2018 / 20:14