Bashを使用して、あるプログラムが別のプログラムを開始する前に開始する時間があることを保証する

Bashを使用して、あるプログラムが別のプログラムを開始する前に開始する時間があることを保証する

次のbashスクリプトに関する質問があります。

#Install and start application
./gradlew assemble
java -jar bignibou-server/build/libs/bignibou-server.jar&

#Run end2end tests
node_modules/.bin/protractor bignibou-client/protractor.conf.js

スクリプトの最初の部分はJavaアプリケーションを起動し、2番目の部分はJavaアプリケーションでend2endテストを実行します。

問題は、Javaアプリケーションが実際に正しく起動される前にend2endテストが実行されることです。

バッシュは私に役立つことができますか?使用することが&私の問題の原因です。コマンドを終了する正しい方法は何ですかjava -jar

ベストアンサー1

&bignibou-serverテスト中に実行する必要があると仮定した最初のプロセスのバックグラウンド使用はここで正しいですか?

テストを開始する前に遅延を導入する最も簡単な方法は、sleepコマンドを使用することです。

./gradlew assemble
java -jar bignibou-server/build/libs/bignibou-server.jar &

sleep 60

node_modules/.bin/protractor bignibou-client/protractor.conf.js

これにより、テストが開始される前に60秒の遅延が追加されます。詳細についてはを参照してくださいman sleep

おすすめ記事