如果 anacron 不是守护进程,它如何工作?

tgw*_*tdt 14 cron background-process anacron

我正在阅读 cron 和 anacron 之间的区别,我意识到 anacron 与 cron 不同,它不是守护进程。所以我想知道如果它不是守护进程,它实际上是如何工作的。

Ste*_*itt 21

它使用多种方法来运行:

  • 如果系统正在运行 systemd,它会使用 systemd 计时器(在 Debian 软件包中,您会在 中看到/lib/systemd/system/anacron.timer);
  • 如果系统没有运行 systemd,它会使用系统 cron 作业(in /etc/cron.d/anacron);
  • 在所有情况下,它每天、每周和每月运行 cron 作业(in /etc/cron.{daily,weekly,monthly}/0anacron);
  • 它还在引导时运行(来自/etc/init.d/anacron或其 systemd 单元)。

  • @QPaysTaxes - Bash(和其他一些 shell)以这种方式扩展大括号 - 请参阅 [Bash 参考手册:大括号扩展](https://www.gnu.org/software/bash/manual/html_node/Brace-Expansion.html ) (3认同)

Kus*_*nda 6

anacron不是守护进程,因此它需要通过其他方式定期运行。大多数情况下,这意味着每天执行一次 cron 作业,也可能在启动时执行。

这在 root 的 crontab 中可能如下所示,例如:

@reboot /usr/local/sbin/anacron -ds
@daily  /usr/local/sbin/anacron -ds
Run Code Online (Sandbox Code Playgroud)

显然,使用 systemd 的 Linux 系统可能会以不同的方式执行此操作,但仍然需要anacron每 24 小时至少运行一次。

anacron每 24 小时运行一次以上是没有意义的,因为可以安排作业的最短时间段anacron是一天一次。