Когда Вы говорите, что это не закрывается, Вы знаете, не называют ли сценарий никогда или если это просто не делает то, что это, как предполагается?
Вдобавок к другим журналам я добавил бы набор операторов эха к сценарию запуска/завершения работы, которые просто делают вещи как:
echo "$(date) Entering script" >> ~root/debugging.log
...
echo "$(date) Entering section x" >> ~root/debugging.log
Мог бы помочь Вам разыскать, где искать проблему
Это невозможно сделать в марионетке. Если вам нужно выполнить запуск марионеток на серверах в определенном порядке, вам нужно использовать другой инструмент для организовывать запуски.
Предположим, что вы используете Linux-хосты, но тогда вы можете сделать то же самое и с Windows-хостом, используя альтернативный подход к bash. Несколько обобщённый подход может быть следующим...
В самом конце марионеточного запуска для узла 1 создайте определённый файл на узле 2. Для этого используйте ssh в качестве команды в кукольном ресурсе. Ssh может быть использован для выполнения команды на удаленном хосте для создания файла - довольно просто. Вы поместите его в ресурс исполнения в самом конце куклы, запущенной на узле 1.
Создайте скрипт bash на узле 2, который, по сути, ждет появления файла, а затем успешно возвращает его, когда он присутствует. Этот скрипт может быть создан с использованием файлового ресурса на ранней стадии запуска куклы на узле2. Простой сценарий bash.
Ближе к началу запуска куклы на узле 2, после того, как вы создали сценарий bash, запустите тот же самый сценарий bash внутри ресурса выполнения куклы. Он будет ждать, пока файл будет создан - в основном, ожидая завершения запуска куклы на узле 1, прежде чем продолжить.
Шаги, описанные выше, должны обеспечить эффект от того, что кукла будет запущена на узле 2, остановится и будет ждать очень рано, пока кукла не завершит свою работу на узле 1. Настройте по мере необходимости в соответствии с конкретными задействованными хост-системами
.