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