root@dev-demo-karl:/srv/www# supervisord -v
3.3.1
尝试开始supervisorctl
工作:
root@dev-demo-karl:/srv/www# supervisorctl
http://localhost:9001 refused connection
我的配置:
[supervisord]
nodaemon=true
[supervisorctl]
答案1
显然,3.0 及以上版本的配置文件中有必填字段http://supervisord.org/configuration.html
[inet_http_server]
是必须的:
TCP 主机:端口值或(例如 127.0.0.1:9001),supervisor 将在此端口上监听 HTTP/XML-RPC 请求。supervisorctl 将使用 XML-RPC 通过此端口与 Supervisord 通信。要监听机器中的所有接口,请使用 :9001 或 *:9001。
默认值:无默认值。
必填:是。
引入:3.0
此外,由于它会抱怨,所以需要 [rpcinterface:supervisor]。
所以我的配置必须是这样的:
[supervisord]
nodaemon=true
[supervisorctl]
[inet_http_server]
port = 127.0.0.1:9001
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
现在已连接。
答案2
首先您应该supervisord
从-c
标志开始并指向cfg文件。
sudo supervisord -c /path/to/config/file
在那次奔跑之后supervisorctl
尝试运行supervisord
以sudo
确保这不是权限问题。如果一切正常,您可以在没有的情况下启动应用程序sudo
。
-c
如果我没记错的话,可能也需要标志supervisorctl
,但我不确定它是否有必要。
答案3
如果您收到以下信息,请务必检查以下内容http://localhost:9001 refused connection
错误。
- 确保
supervisord
正在运行 supervisord.conf
在文件中启用这些(取消注释) :
a)[inet_http_server] port=127.0.0.1:9001
b)
[supervisorctl] serverurl=http://127.0.0.1:9001
C)
[rpcinterface:supervisor] supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
笔记:inet 服务器的主机和端口以及 supervisedctl 尝试连接的主机和端口应该相同。
答案4
默认情况下,inet_http_server 在主管配置中是关闭的。如果存在,则需要启用;如果不存在,则添加以下几行
[inet_http_server] 端口 = 127.0.0.1:9001
然后重新启动 Supervisord;您应该已全部设置完毕,sudosupervisorctl status
应该会显示具有相应状态的进程