2012-01-05 4 views
5

У меня вопрос о сценариях оболочки (среда Linux, желательно Ubuntu).Сценарий оболочки для запуска нескольких процессов

Мы хотим выполнить стресс-тест в приложении RESTFul. Стресс-тест состоит из двух процессов. Запуск их может быть что-то вроде:

Java -jar stress.jar

ява -jar stress.jar -someparameter SomeValue

Оба должны быть запущены одновременно.

Первый процесс должен начинаться, запускаться и возвращаться. Второй тоже. По определению вторая вернется намного раньше, и мы хотим, чтобы она повторялась до тех пор, пока первая не вернется.

Я был бы очень благодарен, если кто-то может предоставить мне сценарий (или основы, которые я могу использовать) для этого.

EDIT

это сделал трюк:

#!/bin/bash 

commandA & apid=$!; 

sleep 10; 

while kill -0 $apid; do commandB; done 
+0

Тестирование спокойного решения - http://stackoverflow.com/questions/203495/testing-rest-webservices. Использование bash для создания условия тестирования может быть нестабильным. – Jayan

+0

Я только хочу использовать bash для «автоматического ввода» команд, которые я уже использую для запуска этих программ, - как вы можете видеть, наш тестовый набор уже реализован в JAR. Вы имеете в виду, что я не могу полагаться на bash для этой простой задачи? – gyorgyabraham

ответ

2

использовать & оператор, чтобы начать первый процесс в фоновом режиме:

java -jar stress.jar & 

так второй процесс, вы можете начать несколько раз перед началом работы:

java -jar stress.jar -someparameter somevalue 
java -jar stress.jar -someparameter2 somevalue2 

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

0

Вот еще один способ, который должен работать


#!/usr/bin/expect 
spawn java -jar stress.jar -someparameter somevalue 
expect -timeout 0 timeout { 
    system java -jar stress.jar -someparameter2 somevalue2 
    exp_continue 
} 

Я считаю, что это немного превосходит время цикла ОП публикуемый, потому что страдает от состояния гонки мелиоративных PID, который может быть серьезным, если второй командой жизнь долгое время.

Смежные вопросы