如何等待supervisorctl完成重新加载?

如何等待supervisorctl完成重新加载?

我开始使用supervisorctl reload而不是supervisorctl restart myprocess因为reload不会导致中断而restart会。

但是,由于系统仍在重新加载,因此supervisorctl status直接调用 after会失败。 在我的部署脚本中,我仍然想确认主管已成功重新加载,因此我需要等待。 我如何在 bash 中等待完成?supervisorctl reload

supervisor reload

答案1

通常,解决这些情况的快速而粗略的方法是使用循环until来检查某些事情,myprocess以确认一切已准备就绪。

我们假设myprocess在所有飞行前检查成功后在端口 80 上打开一个套接字,然后尝试netcat连接到端口 80 应该可以解决问题:

supervisorctl reload myprocess

until nc -z somehost 80 &> /dev/null
do
  sleep 1
done

some other commands

相关内容