J'ai besoin d'écrire une unité de minuterie pour une machine qui est souvent éteinte (par exemple, configuration de bureau classique). Cette unité de minuterie doit être activée régulièrement mais pas très souvent (par exemple hebdomadaire, mensuelle).
J'ai trouvé quelques approches mais elles ne correspondent pas toutes vraiment:
Selon les pages de manuel seulement
OnBootSec
et lesOnStartupSec
directives seront activées si le point de temps configuré est dans le passé. J'ai également trouvé quelques exemples utilisant une combinaison de ceux-ciOnActiveSec
pour définir un événement régulier. Le problème est le suivant: à chaque démarrage de la machine, la minuterie active l'unité configurée. Si vous avez une minuterie qui devrait fonctionner UNE FOIS par semaine / mois, c'est beaucoup trop souvent. Par exemple: je ne veux pas faire tourner mes journaux trois fois par jour ...Solutions avec la
OnCalendar
directive. Si la machine est mise hors tension à l'heure configurée (principalement minuit car si vous omettez l'heure dans la spécification d'heure, elle est par défaut 00:00:00), la minuterie ne sera pas activée après le prochain démarrage. C'est du moins ainsi que je l'ai obtenu. Est-ce correct ?
Voici donc la question: le
minuteur avec les événements de calendrier est-il activé juste après le prochain démarrage si l'heure configurée est passée?
Sinon: existe-t-il une solution pour obtenir un tel comportement?
Réponses:
Cette fonctionnalité a déjà été implémentée dans systemd (ver> = 212) à l'aide de la
Persistent=
directive, il vous suffit donc de l'insérerPersistent=true
dans le fichier d'unité lors de l'utilisation de laOnCalendar=
directive pour établir la date / heure d'exécution du travail.la source
OnBootSec
etOnActiveSec
.Persistent
est de courir une fois au démarrage si au moins une course a été manquée en raison d'une panneSelon cet e - mail sur la liste de diffusion systemd-devel, le comportement souhaité est sur la feuille de route et sera ajouté à l'avenir.
la source