Как предотвратить выполнение задания cron, если оно уже запущено

У меня есть один php-скрипт, и я запускаю этот скрипт через cron каждые 10 минут на CentOS.

Проблема в том, что если задание cron займет более 10 минут, то запустится другой экземпляр того же задания cron.

Я попробовал один трюк, а именно:

  1. Создал один файл блокировки с php-кодом (такой же, как файлы pid), когда работа cron началась.
  2. Удален файл блокировки с php-кодом после завершения задания.
  3. И когда любое новое задание cron начинало выполнение скрипта, я проверял, блокируется ли файл существует, и если это так, сценарий прерван.

Но может быть одна проблема, когда файл блокировки не удаляется или удаляется скриптом по какой-либо причине. Cron больше никогда не запустится.

Можно ли как-нибудь снова остановить выполнение задания cron, если оно уже запущено, с помощью команд Linux или подобных?

25
задан Cristian Ciupitu 8 August 2014 в 22:08
поделиться