Назад | Перейти на главную страницу

Как выйти после запуска службы в Linux for loop

У меня есть цикл for, который я использую, чтобы остановить и запустить несколько серверов разработки, вот пример.

for i in `cat hosts` ; do ssh $i -i .ssh/key.key -t sudo /etc/init.d/jboss-as start ; done

Это будет подключаться к каждому ящику один за другим и останавливать службу, и мне нужно дождаться операции закрытия службы в этом случае "jboss", прежде чем будет выполнено соединение с другими блоками.

Есть ли способ выполнить запрос и выйти, не дожидаясь его завершения?

Спасибо

Как предложил krisFR, запустите все команды в фоновом режиме:

for i in $(cat hosts); do
    (ssh ${i} -i .ssh/key.key -t sudo /etc/init.d/jboss-as start) & 
done

ПРИМЕЧАНИЕ: $ () предпочтительнее, чем `` для запуска подоболочки.

ansible -i hosts -k -m service -a "имя = jboss-as состояние = запущено"

Вот для чего нужны инструменты оркестровки;)