Aller au contenu

Minuteur systemd

Minuteur systemd (en anglais systemd timer) : unité de type .timer dont le seul rôle est de démarrer une autre unité au bon moment, par défaut le .service du même nom. Le minuteur dit quand, le service dit quoi et comment (compte, environnement, limites de ressources, isolation), et la sortie de la tâche arrive dans le journal au lieu d'un courrier que personne ne lit.

Deux familles de déclencheurs : les calendaires, OnCalendar=*-*-* 02:00:00, qui suivent l'heure réelle et acceptent un fuseau explicite (05:00 Europe/Paris) ; les monotones, OnBootSec=, OnUnitActiveSec=, relatifs à un événement et insensibles aux changements d'heure. Réglages utiles : Persistent=true rattrape une échéance manquée pendant que la machine était éteinte ; RandomizedDelaySec= étale une même tâche sur un parc ; AccuracySec= vaut une minute par défaut. On active le minuteur, pas le service : systemctl enable --now signalements-export.timer, puis systemctl list-timers affiche les prochaines échéances. systemd-analyze calendar '<expression>' vérifie une expression avant de l'écrire.

Un minuteur ne relance pas un service encore actif : deux exécutions ne se chevauchent jamais. La contrepartie, pour un service Type=oneshot dont le délai de démarrage est désactivé par défaut, est qu'une exécution bloquée empêche toutes les suivantes, en silence : fixez TimeoutStartSec=, et ajoutez OnFailure= pour être prévenu d'un échec.

Dans les cours

Voir aussi