小编典典

cron如何在内部安排工作?

linux

“现代” cron守护程序如何在 内部
安排作业?有些人crond经常通过来安排一次跑步at。因此,在写出crontab之后,会执行以下操作crond

  1. 解析crontab以了解所有将来的事件,并hibernate间隔时间?
  2. 每分钟轮询一次汇总的crontab数据库,以确定当前时间是否与计划模式匹配?
  3. 其他?

谢谢,


阅读 252

收藏
2020-06-07

共1个答案

小编典典

在这个问题上听到了几声。不错的RTFC,其中包含一些离散事件模拟论文和Wikipedia:

http://en.wikipedia.org/wiki/Cron#Multi-
user_capability

此cron使用的算法如下:

  1. 启动时,在所有帐户持有者的主目录中查找名为.crontab的文件。
  2. 对于找到的每个crontab文件,确定将来要运行每个命令的下一次时间。
  3. 将这些命令及其相应的时间和“五个字段”时间说明符放在Franta-Maly事件列表中。
  4. 输入主循环:
    1. 检查队列开头的任务条目,计算将来要运行多长时间。
    2. 睡眠一段时间。
    3. 唤醒时以及验证正确的时间后,请使用创建队列的用户的权限在队列的开头(在后台)执行任务。
    4. 确定将来要运行此命令的下一次,并将其放回事件列表中
2020-06-07