这个页面http://wiki.ci.uchicago.edu/I2U2/WebalizerConfiguration 建议重命名/etc/cron.daily/logrotate,以便在/etc/cron.daily/webalizer之后 - webalizer应该在logrotate启动之前完成。
真的吗 ?在开始下一个工作之前,cron.daily会等待工作完成吗?
这个页面http://wiki.ci.uchicago.edu/I2U2/WebalizerConfiguration 建议重命名/etc/cron.daily/logrotate,以便在/etc/cron.daily/webalizer之后 - webalizer应该在logrotate启动之前完成。
真的吗 ?在开始下一个工作之前,cron.daily会等待工作完成吗?
Answers:
如果未安装,cron.daily
则执行脚本和其他脚本。您可以在以下位置看到:run-parts
anacron
/etc/crontab
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
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-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
这与在cron中安排每个作业不同,如果它们重叠,它们将并行运行。
我刚刚创建了每分钟执行的测试cron作业:
#!/bin/bash
echo "123" >> /home/user/test-file
sleep 100
echo "234" >> /home/user/test-file
所以我确实看到了重叠htop
。我的意思是有一段时间我看到两个进程同时运行。123
在分钟的乞讨234
时回应,并在下一分钟的40秒(因为sleep 100
)回应。在下一分钟开始的40秒期间,只有一个过程。
这意味着cron解雇了工作,而不是等待他们完成工作。
我会尝试以图形方式表示它:
0 minute 00 seconds 123 <----first execution
1 minute 00 seconds 123 <----second execution
1 minute 40 seconds 234 <----first execution
2 minute 00 seconds 123 <----third execution
2 minute 40 seconds 234 <----second execution
3 minute 00 seconds 123 <----fourth execution
3 minute 40 seconds 234 <----third execution
至少对于/etc/crontab
使用vixie-cron
新更新的Gentoo的工作来说也是如此。
正如保罗所发现的那样 - cron.daily
以不同的方式执行。
/etc/crontab
和cron.daily
东西)执行它们。做得好。