Подтвердить что ты не робот

Как cron внутренне назначает рабочие места?

Как "современные" cron демоны внутренне планируют свои задания? Некоторые crond используются для планирования запуска так часто с помощью at. Итак, после того, как crontab выписан, crond:

  • Разберите crontab для всех будущих событий и сна для интервалов?
  • Опросить агрегированную базу данных crontab каждую минуту, чтобы определить, соответствует ли текущее время шаблону расписания?
  • Другое?

Спасибо,

4b9b3361

Ответ 1

В этом вопросе слышалось несколько сверчков. Хороший 'RTFC с некоторыми документами моделирования дискретных событий и Википедии:

http://en.wikipedia.org/wiki/Cron#Multi-user_capability

Алгоритм, используемый этим cron, равен следующим образом:

  • При запуске найдите файл с именем .crontab в домашних каталогах всех владельцев учетных записей.
  • Для каждого найденного файла crontab определите следующий раз в будущем что каждая команда должна быть запущена.
  • Поместите эти команды в список событий Franta-Maly с их соответствующее время и их "пять поле".
  • Введите основной цикл:
    • Изучите запись задачи в начале очереди, вычислите, как далеко в будущее должно быть запущено.
    • Сон за этот период времени.
    • При пробуждении и после проверки правильного времени выполните задачу в глава очереди (в фоновом режиме) с привилегиями пользователя, который создал его.
    • Определите следующий раз в будущем, чтобы запустить эту команду и поместить он вернулся в список событий в это время