테스트 케이스를 실행할 때까지 프로세스(스트레스)를 계속 실행하는 방법

테스트 케이스를 실행할 때까지 프로세스(스트레스)를 계속 실행하는 방법

내 소프트웨어를 스트레스 테스트하고 싶습니다. 실행 시간이 다른 여러 테스트 사례가 있습니다.

현재 저는 필수 옵션을 사용하여 스트레스 유틸리티를 실행하고 있으며 다른 터미널에서 테스트 케이스를 실행하고 있습니다. 테스트 케이스가 끝나면 Ctrl+C를 눌러 스트레스 프로세스를 종료합니다.

이제 스트레스 유틸리티를 실행한 다음 테스트 케이스를 실행하고 테스트 케이스가 끝난 후 스트레스 프로세스를 종료할 수 있는 스크립트를 만들고 싶습니다.

이제 스트레스 문제를 해결하는 해결 방법인 --timeout 옵션이 생겼습니다. 그래서 나는 다음과 같이 실행합니다.

stress -c 16 --timeout 3600 
./runme //Testcase script

한 시간 후에 압력 유틸리티가 완료됩니다. 그러나 위의 해결 방법에는 다음과 같은 문제가 있습니다. 즉, ./runme이 1분에서 2~3시간이 걸릴 수 있습니다. 그래서 타임아웃 값을 미리 설정할 수가 없습니다.

이 문제를 처리할 수 있는 방법을 제안해주세요.

답변1

stresser프로그램을 백그라운드에서 실행하고 pid나중에 프로그램을 종료하는 데 사용된다는 점에 유의하세요. 지금 testcases시작 하십시오 foreground. 완료되면 testsuites지금 종료하십시오 stresser.

stress -c 16 & #<--- note no timeoutoption given and assuming now it runs forever
pid_stress=$!

./rune //Testcases script

kill -9 "$pid_stress"

관련 정보