Выполнить две зависимые команды в фоновом режиме

Возможно, это зависит от вашей реализации cron, но популярный Vixie cron указывает в руководстве:

cron затем просыпается каждую минуту, изучает все сохраненные crontabs, проверяя каждую команду, чтобы увидеть, должна ли она быть запущена в текущую минуту.

и

Особые соображения существуют, когда часы переводятся менее чем на 3 часов, например, в начале и конце перехода на летнее время. Если время переведено вперед, те задания, которые были бы выполнены в время, которое было пропущено, будут выполняться вскоре после изменения. И наоборот, если время сдвинулось назад менее чем на 3 часа, те задания, которые попадают в повторное время, не будут выполняться повторно.

Только задания, которые выполняются в определенное время (не указанное как @hourly, или с '*' в спецификаторе часа или минуты), будут затронуты. Задания, которые указанные с помощью подстановочных знаков, немедленно запускаются по новому времени.

Поскольку изменение DST было менее 3 часов, ваша программа будет запущена вскоре после 3:00 утра

Я не уверен, что это специфическое поведение Vixie cron, я припоминаю, что так работал мой PDP-11 в 80-х годах, но я не уверен.

0
15.10.2018, 12:05
1 ответ

Мне действительно непонятно, что вы пытаетесь сделать.

Я предполагаю, что вы можете использовать parsetиз GNU Parallel как часть решения:

# Activate parset
. `which env_parallel.bash`

export -f myfunction
parset myresult -j0 myfunction {} ::: arg1 arg2 arg3
echo "${myresult[0]}"
echo "${myresult[1]}"
echo "${myresult[2]}"

Эти команды будут выполняться параллельно:

myfunction arg1
myfunction arg2
myfunction arg3

и поместите вывод каждого из них в массив myresult.

0
28.01.2020, 04:12

Теги

Похожие вопросы