Jim*_*Jim 9 linux scripting cron
我想知道我们是否在 crontab 中添加了一个作业,例如每 5 分钟运行一次,而该作业实际上并没有在 5 分钟内完成,cron 守护进程是否知道前一个实例已经在运行并跳过下一次运行?或者我必须以某种方式为流程构建逻辑?如何?
Gil*_*il' 11
不,与 cron 的约定是它在指定的时间启动每个作业。Cron 不会跟踪哪些连续的工作是“相同的工作”。
如果你想避免在前一个工作没有完成时开始一个工作,你需要在你的工作开始时放一些东西,让它提前退出。例如,您可以为您的作业安排一个锁定文件,如果无法打开该锁定文件则退出。
* * * * flock -n /var/lock/myjob.lock /path/to/script
Run Code Online (Sandbox Code Playgroud)