Am câteva servicii (generatoare statice de site) pe care vreau să le declanșez în mod regulat de la același timer systemd. am găsit această întrebare/răspuns, care acoperă exact ceea ce vreau să fac și descrie o configurație prin care a .ţintă
dosar că Vrea=
servicii multiple este declanșată de un temporizator corespunzător. Sună grozav, dar constat că atunci când am configurat acest lucru, se declanșează întotdeauna o singura data, apoi se dezactivează!
Am pregătit un exemplu de lucru minim (acest lucru nu declanșează mai multe servicii, dar demonstrează aceeași problemă):
test-timer.timer
:
[Unitate]
Descriere=Un cronometru de testare
[Temporizator]
OnCalendar=*-*-* *:*:30
Unit=test-timer.target
[Instalare]
WantedBy=timers.target
test-timer.ţintă
:
[Unitate]
Descriere=Unitatea țintă
Wants=test-timer.service
După=test-timer.service
[Instalare]
WantedBy=timers.target
test-timer.service
:
[Unitate]
Descriere=Executare test
[Serviciu]
ExecStart=/usr/bin/bash -c "date --rfc-3339='secunde' >> /tmp/test-timer-output"
[Instalare]
Also=test-timer.target
Activați cronometrul:
$ sudo cp test-timer.* /etc/systemd/system/
$ sudo systemctl enable --now test-timer.timer
S-a creat legătura simbolică /etc/systemd/system/timers.target.wants/test-timer.timer â /etc/systemd/system/test-timer.timer.
Apoi, când mă uit la ieșirea lui systemctl list-timers --all
, înainte de prima rulare pe care o primesc (ignorând alte cronometre):
URMĂTOAREA STÂNGA ULTIMA UNITATE A TRUCĂ SE ACTIVĂ
Vineri 2021-10-08 10:38:30 EDT 21s rămas n/a n/a test-timer.timer test-timer.target
După prima alergare, URMĂTORUL
și STÂNGA
au fost înlocuite cu N / A
:
URMĂTOAREA STÂNGA ULTIMA UNITATE A TRUCĂ SE ACTIVĂ
n/a n/a Vin 2021-10-08 10:38:32 EDT acum 1min 5s test-timer.timer test-timer.target
Am incercat si eu sa adaug Persistent=adevarat
la test-timer.ţintă
și activarea în mod explicit test-timer.ţintă
, dar niciuna dintre acestea nu funcționează. Oricând o fac systemctl restart test-timer.timer
, repornește, dar declanșează doar o rulare, apoi nu mai are niciodată o altă încercare.
Dacă elimin stratul de indirectă prin schimbarea Unitate=
linie de test-timer.timer
la Unit=test-timer.service
, serviciul se declanșează cu bucurie în fiecare minut, așa cum era de așteptat.
Pierd vreun pas de configurare sau instalare?