Может ли работа crontab работать одновременно с собой?

Если у меня есть работа crontab, которая запускается, например, каждый час, но для выполнения этой задачи может потребоваться больше часа, не будет ли выполнено следующее задание?

2 Solutions collect form web for “Может ли работа crontab работать одновременно с собой?”

Нет, скрипты cron выполняются параллельно, если вы не реализуете какой-либо механизм блокировки.

См. Быстрый и грязный способ обеспечения одновременного запуска только одного экземпляра сценария оболочки и Правильной блокировки в сценариях оболочки? для возможных решений.

Более простой способ – использовать lockfile , например, в этом ответе или в пакете run-one (см. Этот ответ ) – благодаря gertvdijk для его предложения.

Там также whenjobs когда они предназначены для «мощной, но простой замены cron» . Из его manpage :

ПРЕДВАРИТЕЛЬНЫЕ ФУНКЦИИ

Перед запуском задания вы можете организовать функцию «pre». Эта функция может решить не запускать задание (возвращая «ложь»).

Одно из них заключается в том, чтобы предотвратить выполнение определенного задания, если уже есть экземпляр одной и той же работы:

 job "only one" pre (Whentools.one ()) every 10 seconds : << # Takes longer than 10 seconds to run, but 'Whentools.one ()' # will ensure only one is ever running. sleep 11 >> 

(Он также предоставляет Whentools.max n , позволяя запускать n экземпляров задания. По умолчанию он работает как Cron.)

  • время crontab для выполнения, не использующее системную 'дату'
  • Сценарий Crontab -e @reboot не запускается при перезапуске
  • Почему работа cron не может найти базовые команды Linux?
  • crontab нодификация занимает слишком много времени
  • Как я могу подать сигнал на задание cron, чтобы пропустить прогоны?
  • Выполняется ли задание, запланированное в crontab, даже когда я выхожу из системы?
  • Добавить задание CRON из командной строки?
  • /etc/cron.hourly в домашнем каталоге
  • Cron несколько скриптов каждые 5 минут с 10 секундами между каждым скриптом
  • Что делает * / 13 в crontab?
  • Cronjob запускается каждые 30 минут
  • Linux и Unix - лучшая ОС в мире.