我写了一个脚本,它休眠了 1200 秒。该脚本必须每分钟通过 cron 执行一次。
如果我的脚本暂停 1200 秒,cron 还会启动一个新进程吗?
如果是这样,我该如何设置才能将 sleep 命令转发到 cron 以便暂时不执行该脚本。
感谢您的时间和帮助,NaLa
答案1
Cron 将继续按照配置启动新版本。它不关心它的子级:例如,您可能正在运行相同的脚本,但它每分钟都会获取不同的下载文件。
你不能告诉 cron 推迟。至少有两种已知的方法可以实现这一点。两者都有缺点。
(1)不要使用cron。让脚本通过命令调用自身at
,例如echo myScript | at 'now + 1 minute'
(2) 让您的脚本检测到它已经有一个副本正在运行,并在执行任何操作之前退出。您可以为此使用锁定文件。
在这两种情况下,如果您的脚本在启动 at 或释放锁定文件之前中断,则在您干预之前它不会运行。有多种方法可以解决这个问题,但代价是更加复杂。