cron は起動後にスケジュールされたが実行できなかったスクリプト (スリープのため) を実行しますか?

cron は起動後にスケジュールされたが実行できなかったスクリプト (スリープのため) を実行しますか?

私は fedora20 とそのデフォルトの cron を使用しています。rtcwake を使用してサーバーを午前 10:30 にスリープ状態にし、午後 12:30 に起動する cron ジョブ スクリプトがあります。午前 9:40 にスクリプトを手動で実行すると、午後 12:30 にも起動します。午前 9:40 にスクリプトを手動で実行すると、午後 12:30 に起動した後、午前 10:30 に実行されなかった cron タスクが実行され、すぐにスリープ状態になります (午後 3:30 に起動します)。

私のサーバーではこのようなことが起きているようです。起動後に cron が失敗したジョブを実行するかどうかを知りたいです。実行する場合、この動作を変更する方法はありますか? ありがとうございます。

答え1

Fedoraのデフォルトはクロニー、これはシステムがオフの場合でも定期的にジョブを実行するための anacron のような機能を組み込んでいます。デフォルトは/etc/anacrontab次のようになります。

#period in days   delay in minutes   job-identifier   command
1       5       cron.daily              nice run-parts /etc/cron.daily
7       25      cron.weekly             nice run-parts /etc/cron.weekly
@monthly 45     cron.monthly            nice run-parts /etc/cron.monthly

...つまり、デフォルトでは、これらのディレクトリ ( /etc/cron.[daily,weekly,monthly]) のいずれかに配置したスクリプトは、コンピュータの電源がオフの場合でも実行されます。ただし、/etc/crontabまたは/etc/cron.dまたはユーザーの crontab 内のものはそのようには動作しません。man anacrontab既存の定期的なスケジュールが機能しない場合は、新しいエントリを追加する方法については を参照してください。

答え2

すべてのcronデーモンが非連続的なアップタイムのケースを処理できるわけではありません。「欠落した」ジョブを実行するために特別に設計されたデーモンは、anacron

関連情報