web-dev-qa-db-fra.com

Dans quel ordre les tâches cron avec le même planning sont-elles exécutées?

Disons que j'ai les emplois cron suivants:

* * * * * /path/to/taskB
* * * * * /path/to/taskC
* * * * * /path/to/taskA

Existe-t-il une garantie quant à l'ordre dans lequel ils seront exécutés?

J'ai vu des gens dire qu'ils courent dans l'ordre alphabétique et d'autres dire qu'ils courent dans l'ordre où ils sont entrés, alors que d'autres disent qu'ils courent en parallèle.

Je demande 10.04, mais si cela change chez d'autres, j'aimerais le savoir aussi.

6
Macho Matt

L'ordre pour Ubuntu est de haut en bas mais en parallèle .

Signification, pour votre exemple:

 * * * * * /path/to/taskB
 * * * * * /path/to/taskC
 * * * * */path/to/taskA
  1. taskB commence en premier,
  2. puis taskC sans attendre que taskB soit terminé,
  3. puis taskA sans attendre que taskC ou taskB soit terminé

Ubuntu hérite de cet ordre de Debian. Mais en général, ce comportement peut varier en fonction de la distribution/version de Linux et de la mise en oeuvre de cron. Vous ne devriez pas en être le même. Par exemple, dans FreeBSD, l'ordre est de bas en haut!

Si les scripts dépendent les uns des autres, il est préférable de les appeler en séquence, l'un à partir de l'autre, ou à partir d'un script d'encapsuleur "maître", qui est le seul cron s'exécute réellement.

7
ish