초기화/bash 스크립트에서 동시에 여러 프로그램 실행
문제
안녕하세요 저는 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
(나는 배쉬 쉘을 가정하고있다)
제휴하지 않습니다 StackOverflow