Предположим, у меня настроено одновременное выполнение нескольких заданий cron: выполняются ли они параллельно или только одно за другим?
(Мой случай - сжатие Debian с cronjobs, помещенным в /etc/cron.d/mycronjobs).
Для полноты картины вакансии, например, в /etc/cron.{hourly,daily,weekly ,monthly} выполняются последовательно. Сценарий run-parts перебирает все файлы в этом каталоге.
02 4 * * * root run-parts /etc/cron.daily
Таким образом, вы можете использовать это в сочетании с соглашением об именах (аналогично нумерации в /etc/init.d/rc*.d
например), чтобы задания выполнялись последовательно.
Задачи, перечисленные в cron, будут выполняться параллельно, как обычно это делают процессы. Нет способа быть уверенным, что запустится первым, и нет возможности в cron убедиться, что задача A завершена до запуска задачи B.
Cron - это демон (служба), который работает постоянно; однако он читает crontab раз в минуту.
Точная последовательность выполнения заданий будет зависеть от реализации crond вашей системы.
Свободные файлы, которые некоторые дистрибутивы помещают в /etc/cron.d/, сканируются на предмет их настроек таймера cron, поскольку эти файлы соответствуют обычному синтаксису crontab (5).
В каком порядке выполняются отдельные задания, очевидно, зависит от установленного вами расписания.
Они будут работать параллельно. Вы можете использовать следующие методы для последовательного запуска процессов.
# Use a semicolon to run command2 after command1 has completed
02 4 * * * /path/to/command1 ; /path/to/command2
# Use two ampersands to run command2 after command1 has completed successfully.
02 4 * * * /path/to/command1 && /path/to/command2
# Use two vertical rules to run command2 after command1 has completed unsuccessfully.
02 4 * * * /path/to/command1 || /path/to/command2