单个Cron-Instance / Mutex

时间:2011-05-23 08:49:32

标签: cron mutex

我必须确保cron脚本只能同时运行单个实例。现在我使用一个简单的TempFile并在每个scriptstart上检查它。它的问题是,脚本无法在中止/失败时释放这些锁。我尝试了一些其他的pcntl_signal()并且可以捕获ctrl + c并立即杀死,但没有错误。也许你有一个建议巫婆解决方案适用于所有情况?

问候

2 个答案:

答案 0 :(得分:1)

http://bunwich.blogspot.co.uk/2012/08/run-only-single-instance-of-cron-job.html有一个很好的解决方案:

LOCKFILE=/var/run/moodle/moodlecron.lock
set -e
(
    flock -n 200 
    trap "rm $LOCKFILE" EXIT 
    echo Add your commands here
) 200>$LOCKFILE

答案 1 :(得分:0)

我刚遇到lockrun,这似乎是解决cron overrun问题的一个很好的通用解决方案。