命令:crontab -e, 打开文本编辑器,里面加上一句 * * * * * date >>/tmp/date.txt
一段时间后,/tmp/date.txt 文件内容为:
Thu Nov 8 16:42:01 CST 2018
Thu Nov 8 16:43:01 CST 2018
Thu Nov 8 16:44:01 CST 2018
。。。。。
预期的结果为:
Thu Nov 8 16:42:00 CST 2018
Thu Nov 8 16:43:00 CST 2018
Thu Nov 8 16:44:00 CST 2018
。。。。。
为何总是慢一秒,怎么解决?
文件里的内容是执行完任务后的结果,在快的执行也需要CPU的一个时钟周期啊,执行后输出和预期有延时正常
crond是一个定时任务服务,定位就是亚分级时效,而不是亚秒级时效,整个服务虽然严格按照分钟执行,但这个执行是整个crond里面的脚本,调用解析也会花费时间,你可以发现虽然推迟一秒,但是每次输出的时间间隔还是准确的1分钟,所以可以知道这一秒时间不是命令本身花费,而是crond调用花费。
只要是I/O,肯定会有可见的延迟的。 I/O要时钟周期,要中断,要压栈保护现场,出栈恢复。 这个定时只是在精准的时间点进行执行定时任务的命令,
但是,执行玩了之后有个写文件操作,这就要花点时间了。正常。