web-dev-qa-db-ja.com

同じ実行時間のcronジョブ

同時に実行するように設定された複数のcronジョブがあるとします。それらは並行して実行されますか、それとも逐次実行されますか?

(私の場合は、/ etc/cron.d/mycronjobs内にcronjobsを配置したDebian squeezeです)。

8
Gabriele

完全を期すために、たとえば/etc/cron.{hourly,daily,weekly,monthly}は順次実行されます。 run-partsスクリプトは、このディレクトリ内のすべてのファイルをループします。

02 4 * * * root run-parts /etc/cron.daily

したがって、これを命名規則と組み合わせて(たとえば、/etc/init.d/rc*.dの番号付けに似ています)、ジョブが順次実行されるようにすることができます。

7
Bram

Cronにリストされているタスクは、通常のプロセスと同様に、並行して実行されます。どちらが最初に開始するかを確認する方法はなく、タスクBが開始する前にタスクAが完了したことをcronで確認する方法はありません。

5
Sirch

Cronは継続的に実行されるデーモン(サービス)です。ただし、1分に1回はcrontabを読み取ります。

ジョブが実行される正確な順序は、システムのcrondの実装によって異なります。

一部のディストリビューションが/etc/cron.d/内に置く緩いファイルは、通常のcrontab(5)構文に従っているため、それらのcronタイマー設定がスキャンされます。

個々のジョブがどの順序で実行されるかは、ジョブに設定したスケジュールによって異なります。

2
adaptr

それらは並行して実行されます。次の方法を使用して、プロセスを順次実行できます。

# Use a semicolon to run command2 after command1 has completed
02 4 * * * /path/to/command1 ; /path/to/command2

# Use two ampersands to run command2 after command1 has completed successfully.
02 4 * * * /path/to/command1 && /path/to/command2

# Use two vertical rules to run command2 after command1 has completed unsuccessfully.
02 4 * * * /path/to/command1 || /path/to/command2
2
Nicholas