cron 如何在内部调度作业? [英] How does cron internally schedule jobs?
本文介绍了cron 如何在内部调度作业?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
现代"cron
守护进程如何内部安排他们的工作?一些 crond
过去常常通过 at
来安排一次运行.所以在写出 crontab 之后,是否 crond
:
How do "modern" cron
daemons internally schedule their jobs? Some crond
s used to schedule a run every so often via at
. So after a crontab is written out, does crond
:
- 解析所有未来事件的 crontab 和间隔的睡眠?
- 每分钟轮询一个聚合的 crontab 数据库以确定当前时间是否与计划模式匹配?
- 其他?
谢谢,
推荐答案
在这个问题中听到了一些蟋蟀.很好的 'ol RTFC,有一些离散事件模拟论文和维基百科:
A few crickets heard in this question. Good 'ol RTFC with some discrete event simulation papers and Wikipedia:
http://en.wikipedia.org/wiki/Cron#Multi-user_capability
这个cron使用的算法是如下:
The algorithm used by this cron is as follows:
- 启动时,在主目录中查找名为 .crontab 的文件所有帐户持有人.
- 对于找到的每个 crontab 文件,确定未来的下一次每个命令都将被运行.
- 将这些命令放在 Franta-Maly 事件列表中相应的时间和他们的五字段"时间说明符.
- 进入主循环:
- 检查队列头部的任务条目,计算在队列中的距离未来将运行.
- 睡一段时间.
- 唤醒并验证正确时间后,执行任务队列的头部(在后台)具有用户的权限创建它.
- 确定以后下次运行这个命令并放置它回到了当时的事件列表
这篇关于cron 如何在内部调度作业?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文