![Bash - 3개의 병렬 무한 while 루프](https://linux55.com/image/183277/Bash%20-%203%EA%B0%9C%EC%9D%98%20%EB%B3%91%EB%A0%AC%20%EB%AC%B4%ED%95%9C%20while%20%EB%A3%A8%ED%94%84.png)
일부 측정항목을 보내는 3개의 스크립트가 있습니다.
script1.sh
실행시간은 약 1초script2.sh
실행하는데 약 10초 정도 소요script3.sh
실행에는 약 2분 정도 소요됩니다.
30초마다 측정항목을 보내고 싶습니다 script1.sh
( script2.sh
스크립트 script3.sh
는 한 번에 하나의 인스턴스에서만 실행할 수 있음). 즉, 3개의 while
루프를 병렬화합니다.
#!/bin/sh
while true; do
./script1.sh
sleep 30
done
while true; do
./script2.sh
sleep 20
done
while true; do
./script3.sh
done
어떻게 이를 달성할 수 있나요?
답변1
테스트되지는 않았지만 별도의 백그라운드 하위 셸에서 각 루프를 실행해 보세요.
( while true; do ./script1.sh; sleep 30; done ) &
( while true; do ./script2.sh; sleep 20; done ) &
( while true; do ./script3.sh; done ) &
wait