문제

안녕하세요 저는 RCS 스크립트를 사용하여 부팅하는 시뮬레이터로 작업하고 있습니다.

cd /tests
./test1 &
./test2 &
./test3 &
./test4 
exit

내가 원하는 것은 모든 테스트를 동시에 실행하고 출구 명령이 이전 테스트가 모두 완료된 경우에만 실행됩니다. 그리고 테스트 4가 끝났을 때뿐만 아니라 이것이 가능합니까? 고맙습니다.

도움이 되었습니까?

해결책

대기를 사용할 수 있습니다.

./test1 &
./test2 &
./test3 &
./test4 &
wait

Bash Man 페이지에서 :

n ...] 지정된 각 프로세스를 기다리고 종료 상태를 반환하십시오. 각 n은 프로세스 ID 또는 작업 사양 일 수 있습니다. 작업 사양이 제공되면 해당 작업 파이프 라인의 모든 프로세스가 기다립니다. N이 주어지지 않으면 현재 활성화 된 모든 아동 프로세스가 기다리고 있으며 반환 상태는 0입니다. n이 존재하지 않는 프로세스 또는 작업을 지정하면 반환 상태는 127입니다. 그렇지 않으면 반환 상태는 마지막 프로세스 또는 직무의 종료 상태입니다.

다른 팁

xargs 평행을 지원할 수 있습니다

그러니 다음과 같이 :

seq 4|xargs -i -n 1 -P 4 ./test{} 

줄을 따라 뭔가

cd /tests
./test1 &
./test2 &
./test3 &
./test4 &
wait
exit

(나는 배쉬 쉘을 가정하고있다)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top