cron 如何在内部调度作业? [英] How does cron internally schedule jobs?

查看:17
本文介绍了cron 如何在内部调度作业?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

现代"cron 守护进程如何内部安排他们的工作?一些 crond 过去常常通过 at 来安排一次运行.所以在写出 crontab 之后,是否 crond:

How do "modern" cron daemons internally schedule their jobs? Some cronds used to schedule a run every so often via at. So after a crontab is written out, does crond:

  1. 解析所有未来事件的 crontab 和间隔的睡眠?
  2. 每分钟轮询一个聚合的 crontab 数据库以确定当前时间是否与计划模式匹配?
  3. 其他?

谢谢,

推荐答案

在这个问题中听到了一些蟋蟀.很好的 '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:

  1. 启动时,在主目录中查找名为 .crontab 的文件所有帐户持有人.
  2. 对于找到的每个 crontab 文件,确定未来的下一次每个命令都将被运行.
  3. 将这些命令放在 Franta-Maly 事件列表中相应的时间和他们的五字段"时间说明符.
  4. 进入主循环:
  1. 检查队列头部的任务条目,计算在队列中的距离未来将运行.
  2. 睡一段时间.
  3. 唤醒并验证正确时间后,执行任务队列的头部(在后台)具有用户的权限创建它.
  4. 确定以后下次运行这个命令并放置它回到了当时的事件列表

这篇关于cron 如何在内部调度作业?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆