Cron : utiliser Flock pour éviter qu’une tâche planifiée ne se lance si elle est déjà en cours d’exécution.

Le planificateur de tâches de Linux (Cron) ne dispose pas des options avancées de son homologue sous Windows pour gérer la simultanéité des tâches.

En effet, si vous planifiez une tâche cron, toutes les 5 minutes par exemple (*/5 * * * * bash_dummy), que celle-ci soit toujours en cours d’exécution ou non, elle se relancera. La tâche n’attend pas la fin de la précédente exécution, ce qui va logiquement poser des soucis si votre tâche est longue à s’exécuter.

Pour faire un sorte qu’une tâche cron ne se lance pas plusieurs fois en simultané, il faut lancer la tâche avec Flock. Flock permet de créer un lockfile (fichier de blocage) basé sur le processus appelé. Si le lockfile est en cours d’utilisation, alors Flock ne lancera pas la tâche une deuxième fois. Pratique !

/usr/bin/flock -n /tmp/my.lockfile /usr/local/bin/my_script

Flock est installé sur Debian 9 et 10 par défaut. Il existe « run-one » sous Ubuntu pour faire la même chose.

Vous aimerez aussi...

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *