일부 측정항목을 보내는 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