Если вы можете настроить свой сценарий таким образом
#!/bin/bash
. config
. /path/to/sub-script
Любые переменные, инициализированные в config
, должны стать доступными для основного сценария, а любые скрипты, исходящие от него.
Похоже, ваш сценарий запускал новый неинтерактивный процесс оболочки, переменные оболочки, инициализированные в родительском сценарии, были бы недоступны, но экспортированные переменные среды должны быть доступны новому дочернему процессу.
Вам следует искать распределенный планировщик задач / заданий, систему управления кластером или управление облаком. Многие из них уже существуют; Кас указал на несколько в своих комментариях, и Google покажет еще много.
Я подозреваю, что вы все будете намного счастливее, когда развернете его, и вам больше не придется беспокоиться о том, чтобы все время наступать друг другу на пятки. Кроме того, вы должны исправить свои серверы так, чтобы ошибки просто приводили к сбою задачи, а не к остановке машины.
Если вы настаиваете на создании своего собственного (что, признаюсь, я сделал - хотя это было 15 лет назад), задачи в целом потребляют несколько разных типов ресурсов, и вы, вероятно, захотите подумать, какие из них берут на себя ваши задачи:
задачи make
] Вы можете проверить использование памяти через бесплатно
, дисковый ввод-вывод через iostat
, пространство с свободным
, использование ЦП через cat / proc / loadavg
(в Linux) или время безотказной работы
, вверх
, ps
и т. Д.
Но, конечно, с проверкой текущих чисел есть проблемы - возможно, ваша задача make
сначала выполняет несколько простых действий, занимая несколько минут, а затем запускается. огромный процесс, который требует гигабайт оперативной памяти. Это могло произойти:
Да, вышеизложенное основано на опыте написания одного (хотя для того, для чего я использовал свой, это было процессорное время).