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 테스트를 실행합니다.

문제는 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.

관련 정보