使用 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 应用程序,第二部分对该 java 应用程序运行 end2end 测试。

问题在于 end2end 测试在 java 应用程序真正正确启动之前运行。

bash 可以帮我吗?使用&是我的问题的原因。结束命令的正确方法是什么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获取更多信息。

相关内容