J'essaie de faire une minuterie systemd qui s'exécute toutes les 15 minutes. En ce moment j'ai:
timer-fifteen.timer
:[Unit] Description=15min timer [Timer] OnBootSec=0min OnCalendar=*:*:0,15,30,45 Unit=timer-fifteen.target [Install] WantedBy=basic.target
timer-fifteen.target
:[Unit] Description=15min Timer Target StopWhenUnneeded=yes
Cela se répète sans arrêt. A-t-il besoin d'être à la *:0,15,30,45:*
place? Comment puis-je faire ce travail?
Réponses:
Votre syntaxe se traduit toutes les 15 secondes . Si vous voulez toutes les 15 minutes , le moyen le plus lisible de l’OMI est:
Une réponse très similaire à celle que vous utilisez dans votre question est la suivante:
Plus d'information:
la source
OnCalendar=0/8:00:00
est correct de dire "courir toutes les 8 heures"?OnCalendar=*:0/15
devrait traduireOnCalendar=*:0,15,30,45
exactement (étant donné que je l’ai lu correctement dans la documentation). Toutes les 8 heures seraient réalisées avecOnUnitActiveSec=8hours
.systemd-analyze
peut s'avérer utile, par exemple, essayezsystemd-analyze calendar *:0/15
.Selon le systemd.time , le réglage
se traduit exactement par
c'est à dire. il active l’unité exactement à l’heure complète, ainsi qu’à trois heures et demie et à une heure et quart.
Selon votre service, cela peut ne pas être ce que vous voulez, ni ce dont vous avez besoin dans tous les cas.
Une minuterie qui s'exécute toutes les 15 minutes - par exemple à 1:02, 1:17, 1:32, 1:47, 2:02,… - toujours en fonction de l'heure de la dernière exécution - peut être réalisée avec systemd. réglage de la minuterie
Maintenant, vous voudrez également que l’unité démarre quelque temps après le démarrage (à moins que vous ne souhaitiez l’activer manuellement ou qu’elle ait une dépendance qui le fasse), vous devriez donc peut-être spécifier
faire démarrer l’appareil 10 minutes après le démarrage, puis toutes les 15 minutes après cette première fois.
De plus, il existe un paramètre
OnUnitInactiveSec
qui commence à compter le temps après l' arrêt du service (ou, plus généralement, l'unité est désactivée).la source
OnUnitActiveSec
semble être assez cassé .