使用 until 循环监视多个进程

using untill loop to monitor multiple processes

我发现 until 循环是监视和重启进程的好方法,无论它出于何种原因终止

until myserver; do
    echo "Server 'myserver' crashed with exit code $?.  Respawning.." >&2
    sleep 1
done

有没有办法得到类似

的东西
until myserver; myserver2 , myserver3 ; do
    echo "Server 'myserver1' crashed with exit code $?.  Respawning.." >&2
    echo "Server 'myserver2' crashed with exit code $?.  Respawning.." >&2
    echo "Server 'myserver3' crashed with exit code $?.  Respawning.." >&2
    sleep 1
done

抱歉我是菜鸟...

您需要 运行 三个并行的独立循环。

until myserver; do
  echo "...." >&2
  sleep 1
done &

until myserver2; do
  echo "...." >&2
  sleep 1
done &

until myserver3; do
  echo "...." >&2
  sleep 1
done & 

wait

在后台启动所有循环后,使用wait等待每个循环成功完成。