Eu tenho esse temporizador:
$ systemctl cat ansible-pull.timer
# /etc/systemd/system/ansible-pull.timer
[Unit]
Description=Starts ansible-pull
Requires=ansible-pull.service
[Timer]
OnStartupSec=10min
OnUnitActiveSec=6h
[Install]
WantedBy=timers.target
Chamando este serviço:
$ systemctl cat ansible-pull.service
# /etc/systemd/system/ansible-pull.service
[Unit]
Description=Runs ansible-pull
[Service]
Type=oneshot
User=ansible
ExecStart=/usr/bin/ansible-pull
E geralmente funciona conforme o esperado (executa 10 minutos após a inicialização e depois a cada 6 horas), exceto que também é executado uma vez imediatamente durante a inicialização, o que eu gostaria de evitar.
Eu esperava isso para um cronômetro com Persistent=true
, mas não está definido aqui e o padrão é false
.
Mais alguns dados de depuração:
$ systemctl list-dependencies --reverse ansible-pull.timer
ansible-pull.timer
● └─timers.target
● └─basic.target
○ ├─initrd.target
● └─multi-user.target
● └─graphical.target
$ systemctl list-dependencies --reverse ansible-pull.service
ansible-pull.service
● └─ansible-pull.timer
$ find /{etc,usr/lib}/systemd/ -name ansible-pull.\*
/etc/systemd/system/ansible-pull.service
/etc/systemd/system/ansible-pull.timer
/etc/systemd/system/timers.target.wants/ansible-pull.timer