2012-01-05 21 views
5

シェルスクリプトに関する質問があります(環境はLinux、好ましくはUbuntuです)。複数のプロセスを実行するためのシェルスクリプト

RESTFulアプリケーションでストレステストを実行します。ストレステストは2つのプロセスで構成されています。それらを実行することができような何か:

のjava -jar stress.jar

のjava -jar stress.jar -someparameter someValueの

二つが同時に開始する必要があります。

最初のプロセスは、開始し、実行し、戻す必要があります。 2番目です。定義によれば、2番目のものははるかに早く戻ります。最初のものが返るまで、2番目のものが繰り返し実行されます。

これを達成するために誰かが私にスクリプト(または私が使用できる基本)を提供できるのであれば、とても感謝します。

java -jar stress.jar & 

ので、第二の方法は、あなたが複数回起動することができます。バックグラウンドでの最初のプロセスを開始するために

#!/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

使用&オペレータ:EDIT

この

は、トリックを行いました最初に実行中のフォアグラウンド:

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

しかし、プロセスがstdoutに印刷された場合、それは混乱する可能性があります。

0

は、私は、これはそれが2番目のコマンドの生活の場合、深刻な可能性があり、PID干拓競合状態、苦しんでいるので、OPが掲載whileループにやや優れていると信じてい


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

を動作するはずもう一つの方法です長い間。