Supervisorctl 3.3.1 http://localhost:9001 拒绝连接

Supervisorctl 3.3.1 http://localhost:9001 拒绝连接
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

尝试运行supervisordsudo确保这不是权限问题。如果一切正常,您可以在没有的情况下启动应用程序sudo

-c如果我没记错的话,可能也需要标志supervisorctl,但我不确定它是否有必要。

答案3

如果您收到以下信息,请务必检查以下内容http://localhost:9001 refused connection错误。

  1. 确保supervisord正在运行
  2. 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应该会显示具有相应状态的进程

相关内容