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


Answers:


5

如果未安装,cron.daily则执行脚本和其他脚本。您可以在以下位置看到:run-partsanacron/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以不同的方式(/etc/crontabcron.daily东西)执行它们。做得好。
VL-80

1

我刚刚创建了每分钟执行的测试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以不同的方式执行。

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.