我正在阅读 cron 和 anacron 之间的差异,我意识到 anacron 与 cron 不同,它不是守护进程。所以我想知道如果它不是守护进程,它实际上是如何工作的。
答案1
它使用多种方法来运行:
- 如果系统正在运行 systemd,它会使用 systemd 计时器(在 Debian 软件包中,您将在 中看到它
/lib/systemd/system/anacron.timer
); - 如果系统没有运行 systemd,它会使用系统 cron 作业(在 中
/etc/cron.d/anacron
); - 在所有情况下,它都会每天、每周和每月运行 cron 作业(在
/etc/cron.{daily,weekly,monthly}/0anacron
); - 它也在引导时运行(从
/etc/init.d/anacron
或其 systemd 单元)。
答案2
anacron
不是守护进程,因此需要通过其他方式定期运行。大多数情况下,这意味着每天使用 cron 作业执行一次,也可能在启动时执行。
例如,在 root 的 crontab 中,这可能类似于以下内容:
@reboot /usr/local/sbin/anacron -ds
@daily /usr/local/sbin/anacron -ds
anacron
显然,使用 systemd 的 Linux 系统可能会以不同的方式执行此操作,但仍然需要每 24 小时至少运行一次。
每 24 小时运行anacron
一次以上是没有意义的,因为可以安排作业的最短周期anacron
是每天一次。