为什么Supervisor无法识别代码更改?

8

我正在使用Supervisor来管理在EC2实例上使用git进行部署的node.js应用程序。Supervisor可以很好地确保我的应用程序保持稳定,但是每当我将新的服务器端代码推送到远程服务器时,它通常无法识别这些更改。我需要终止Supervisor进程并重新启动它。我是否做错了什么,或者这是标准行为?

1个回答

14

这是标准行为;supervisord 不会检测代码的更改。它只在进程自己停止或死亡时重新启动进程。

只需指示 supervisord 在您推送更改时重新启动应用程序即可。 supervisorctl restart programname 即可,无需杀死和重新启动 supervisord 本身。

如果 supervisord 配置已更改,请使用 supervisorctl update


谢谢!supervisorctl在哪里?我需要设置任何配置吗? - user730569
@user730569:文档中还有一个有用的部分:http://supervisord.org/running.html - Martijn Pieters
3
当我运行 supervisorctl update 时,我遇到了一个错误:error: <class 'socket.error'>, [Errno 111] Connection refused: file: /usr/lib64/python2.6/socket.py line: 567 - user730569
1
我们现在正在极限地扩展SO问答格式。请查看supervisord文档,并将其与您配置supervisord的方式进行比较。supervisorctl使用与守护程序相同的配置来确定如何与其通信,但如果守护程序未运行,则联系它将失败,或者这意味着supervisorctl未使用相同的配置并且正在错误的位置查找。 - Martijn Pieters
“supervisorctl restart programname” 和 “supervisorctl stop programname” 再加上 “supervisorctl start programname” 是一样的吗? - Tms91
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接