cron.daily 会在开始下一个作业之前等待作业完成吗?

com*_*ike 5 linux cron logfiles logrotate lock

这个页面http://wiki.ci.uchicago.edu/I2U2/WebalizerConfiguration 建议重命名 /etc/cron.daily/logrotate 所以它在 /etc/cron.daily/webalizer 之后 - webalizer 应该在 logrotate 开始之前完成。

真的吗 ?cron.daily 会在开始下一个作业之前等待作业完成吗?

Pau*_*aul 6

中的脚本cron.daily和其他脚本使用run-partsifanacron未安装来执行。你可以在/etc/crontab

25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
Run Code Online (Sandbox Code Playgroud)

run-parts将执行目录中的每个可执行文件,并在运行下一个之前等待每个可执行文件完成。这是使用这两个脚本的测试:

$ cat cron/1test
#!/bin/bash
date
echo script1
sleep 10
date


$ cat cron/2test
#!/bin/bash
date
echo script2
sleep 10
date
Run Code Online (Sandbox Code Playgroud)

输出:

$ run-parts --verbose cron
run-parts: executing cron/1test
Monday 6 January  10:38:42 EST 2014
script1
Monday 6 January  10:38:52 EST 2014
run-parts: executing cron/2test
Monday 6 January  10:38:52 EST 2014
script2
Monday 6 January  10:39:02 EST 2014
Run Code Online (Sandbox Code Playgroud)

这与在 cron 中调度每个作业不同,如果它们重叠,它们将并行运行。