如何确保一个cronjob在另一个cronjob完成之后运行?

时间:2019-02-21 10:23:57

标签: cron

我需要运行两个cronjobs。一种是每天从凌晨1点到午夜每20分钟运行一次。然后第二份工作计划在午夜运行。

let abc = UIApplication.shared.statusBarOrientation
        print(abc.isLandscape)
        print(abc.isPortrait)

但是,当再次运行作业1时,我需要确保作业2已完成。 我该怎么办?

2 个答案:

答案 0 :(得分:0)

一个简单的解决方案是使作业2在启动时创建一个标志文件(例如touch),完成后将其删除。 然后job11应该检查文件是否存在,并使其退出/如果存在则不运行。或睡眠指定的时间,然后重试。

答案 1 :(得分:0)

我想这就是你的追求

*/20 1-23 * * * root while [ ! -e $HOME/jobmarker ]; do sleep 5; done && command_job1
0    0    * * * root rm $HOME/jobmarker && command_job2 && touch $HOME/jobmarker

仅在文件$HOME/jobmarker存在的情况下才运行job1。如果没有,它将等待直到生成它。 第二项工作将首先删除标记,运行命令,然后再次设置标记。