いくつかの指標を送信する3つのスクリプトがあります。
script1.sh
実行時間は約1秒script2.sh
実行するのに約10秒かかりますscript3.sh
実行には約2分かかります。
30秒ごとに指標を送信したいscript1.sh
(script2.sh
スクリプトscript3.sh
は一度に1つのインスタンスでのみ実行できます)。つまり、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