Ubuntu:cron如何执行作业?


4

我很难通过谷歌找到这个问题的答案:

ubuntu中的CRON执行作业有多么夸张?

它是否在自己的过程中产生每个新工作?

说我有两个cron工作:

@reboot /some/really/slow/job
* * * * * /some/quick/job

这些工作会并排运行,还是第一个阻止第二个工作直到完成?

其次,Cron会影响重定向吗?假设我有一个包含类似内容的脚本

rsync --verbose /from /to &>>rsynclog.log

从CRON调用时是否会写入日志文件?或者它最终会在其他地方结束?

Answers:


5

这个答案是针对ubuntu的。其他linux / unix操作系统可能略有不同。

cron守护进程每分钟读取所有crontab文件并将其加载到内存中。对于cron要运行的每个条目(由crontab时间字段确定)cron分叉自己的副本。

然后,forked cron子进程执行一个新的shell(通常是/ bin / sh但是可以覆盖它)来执行crontab命令。cron本身只会分配管理作业的子进程。因此cron条目同时运行 - 例如,如果一个作业需要一个小时,它将不会影响任何其他cron作业的执行。

重定向应该正常工作,输出文件将写入拥有crontab的用户的$ HOME目录。在某些情况下,值得提供命令和重定向文件的完整路径,以避免PATH和HOME设置出现问题。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.