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


Answers

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

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

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

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

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

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

Благодаря,