醒来后 cron 是否运行预定但错过的脚本(因为睡眠)?

醒来后 cron 是否运行预定但错过的脚本(因为睡眠)?

我使用 fedora20 及其默认的 cron。我有一个 cron 作业脚本,它使用 rtcwake 让服务器在上午 10:30 进入睡眠状态,并在中午 12:30 唤醒。如果我在上午 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或用户 crontab中的内容/etc/cron.d不会以这种方式工作。如果现有的定期计划不适合您,请了解man anacrontab如何添加新条目。

答案2

并非所有cron守护进程都能处理非连续正常运行的情况。专门设计用于运行“错过”作业的守护进程是anacron

相关内容