4

У меня возникают проблемы с поиском ответа на этот вопрос в Google:

Насколько точно CRON в Ubuntu выполняет задания?

Это порождает каждую новую работу в своем собственном процессе?

Скажем, у меня есть две работы cron:

@reboot /some/really/slow/job
* * * * * /some/quick/job

Будут ли эти задания выполняться параллельно или первое будет блокировать второе, пока оно не будет выполнено?

Во-вторых, влияет ли Cron на перенаправления? Скажем, у меня есть сценарий, который содержит что-то вроде

rsync --verbose /from /to &>>rsynclog.log

Будет ли записываться файл журнала при вызове из CRON? Или это заканчивается где-то еще?

1 ответ1

5

Этот ответ для Ubuntu. Другие операционные системы Linux / Unix могут отличаться.

Каждую минуту демон cron читает все файлы crontab и загружает их в память. Для каждой записи cron которая должна быть запущена (определяется полями времени crontab), cron создает свою копию.

Затем разветвленный дочерний процесс cron запускает новую оболочку (обычно /bin /sh, но это можно переопределить) для выполнения команды crontab. Сам cron разветвляет только дочерние процессы, которые управляют заданиями. Таким образом, записи cron выполняются одновременно - например, если одно задание занимает час, это не повлияет на выполнение каких-либо других заданий cron.

Перенаправление должно работать как обычно, и выходной файл будет записан в каталог $ HOME пользователя, который владеет crontab. В некоторых случаях стоит указывать полный путь к командам и перенаправленным файлам, чтобы избежать проблем с настройками PATH и HOME.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .