我开始使用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