【问题标题】:Does cron job executing script cancel each othercron作业执行脚本是否相互取消
【发布时间】:2021-11-30 03:59:38
【问题描述】:

我无法理解这个概念

如果一个 cron 作业设置为每 5 分钟执行一次特定脚本,而该脚本正在执行的任务恰好很长

如果 cron 作业在 5 分钟后重新执行脚本并且脚本没有执行完之前的任务会发生什么情况,这会导致之前的任务中止并再次重新启动

或者服务器是否会知道它的假设将它排队并在重新执行脚本之前等待先前的任务

【问题讨论】:

    标签: cron


    【解决方案1】:

    两者都不是。两个任务重叠,同时运行。

    Cron 作业不会相互取消,除非它们尝试锁定并访问相同的文件,或者脚本存在其他冲突。当然,如果你愿意,你也可以让它们相互取消。

    服务器再聪明不过了,除非您明确添加此类详细信息,否则任务不会等待先前的执行,例如,通过使用 flockpgrep 来检查之前的执行是否仍在运行。

    cron 选项卡中的以下示例条目检查脚本是否已在运行,并且仅在脚本 (cron.sh) 尚未运行时运行。

    * * * * * /usr/bin/pgrep -f /path/to/cron.sh > /dev/null 2> /dev/null || /path/to/cron.sh
    

    【讨论】:

    • 感谢您的解释
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-12
    • 2014-04-16
    • 2012-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多