【问题标题】:Why is Supervisor not recognizing code changes?为什么 Supervisor 无法识别代码更改?
【发布时间】:2012-07-10 21:43:55
【问题描述】:

我正在使用 Supervisor 来管理我在 EC2 实例上的 node.js 应用程序,并使用 git 进行部署。 Supervisor 在确保我的应用程序保持正常运行方面做得很好,但是每当我将新的服务器端代码推送到我的远程服务器时,它往往无法识别这些更改。我需要杀死主管进程并重新启动它。是我做错了什么,还是这是标准行为?

【问题讨论】:

    标签: monitoring supervisord


    【解决方案1】:

    这是标准行为; supervisord 不检测代码的变化。只有当进程本身停止或死亡时,它才会重新启动进程。

    只要您推送更改,只​​需指示 supervisord 重新启动应用程序即可。 supervisorctl restart programname 就可以了,不用自己 kill 重启 supervisord。

    如果 supervisord 配置发生变化,请使用supervisorctl update

    【讨论】:

    • 谢谢! supervisorctl 住在哪里?我需要为它设置任何配置吗?
    • @user730569:与supervisord相同的地方;见supervisord.org/introduction.html#supervisor-components
    • @user730569:也是文档的有用部分:supervisord.org/running.html
    • 当我运行supervisorctl update 时出现错误:error: <class 'socket.error'>, [Errno 111] Connection refused: file: /usr/lib64/python2.6/socket.py line: 567
    • @user730569:我们现在正在将 SO Q&A 格式扩展到它的极限。查看 supervisord 文档,并将其与您配置 supervisord 的方式进行比较。 supervisorctl 使用与守护进程相同的配置来确定如何与它对话,但如果守护进程没有运行,那么联系它将失败,这意味着 supervisorctl 没有使用相同的配置,但在错误的地方寻找。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-06
    • 2013-12-18
    • 2016-08-09
    • 1970-01-01
    • 2016-11-30
    • 2023-01-09
    相关资源
    最近更新 更多