我有 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
未经测试,但尝试在单独的后台子 shell 中运行每个循环
( while true; do ./script1.sh; sleep 30; done ) &
( while true; do ./script2.sh; sleep 20; done ) &
( while true; do ./script3.sh; done ) &
wait