我正在使用Supervisor来管理在EC2实例上使用git进行部署的node.js应用程序。Supervisor可以很好地确保我的应用程序保持稳定,但是每当我将新的服务器端代码推送到远程服务器时,它通常无法识别这些更改。我需要终止Supervisor进程并重新启动它。我是否做错了什么,或者这是标准行为?
我正在使用Supervisor来管理在EC2实例上使用git进行部署的node.js应用程序。Supervisor可以很好地确保我的应用程序保持稳定,但是每当我将新的服务器端代码推送到远程服务器时,它通常无法识别这些更改。我需要终止Supervisor进程并重新启动它。我是否做错了什么,或者这是标准行为?
这是标准行为;supervisord 不会检测代码的更改。它只在进程自己停止或死亡时重新启动进程。
只需指示 supervisord 在您推送更改时重新启动应用程序即可。 supervisorctl restart programname
即可,无需杀死和重新启动 supervisord 本身。
如果 supervisord 配置已更改,请使用 supervisorctl update
。
supervisorctl
在哪里?我需要设置任何配置吗? - user730569supervisorctl update
时,我遇到了一个错误:error: <class 'socket.error'>, [Errno 111] Connection refused: file: /usr/lib64/python2.6/socket.py line: 567
。 - user730569supervisorctl
使用与守护程序相同的配置来确定如何与其通信,但如果守护程序未运行,则联系它将失败,或者这意味着supervisorctl
未使用相同的配置并且正在错误的位置查找。 - Martijn Pieters