![如何等待supervisorctl完成重新加载?](https://linux22.com/image/778497/%E5%A6%82%E4%BD%95%E7%AD%89%E5%BE%85supervisorctl%E5%AE%8C%E6%88%90%E9%87%8D%E6%96%B0%E5%8A%A0%E8%BD%BD%EF%BC%9F.png)
我开始使用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