无法在 /etc/supervisor 目录之外使用 Supervisorctl

无法在 /etc/supervisor 目录之外使用 Supervisorctl

我使用 Supervisor 已有一年多了。它是从 Debian 软件包安装的。前几天我升级软件包时,出现了一些问题,但我似乎不知道是什么问题。

~> sudo supervisorctl status
http://localhost:9001 refused connection
~> cd /etc/supervisor
~> sudo supervisorctl status
# Works

在我的/etc/supervisor/supervisord.conf,我告诉主管使用这样的unix套接字:

[supervisorctl]
serverurl=unix:///var/run/supervisor.sock

看起来,当我不在/etc/supervisor文件夹中时,配置就不会加载,并且主管会使用默认值(http://本地主机:9001是 的默认值serverurl

我检查了 Debian 包启动主管的方式,似乎配置文件的路径是绝对的,所以我不明白为什么它不起作用。

/usr/bin/python /usr/bin/supervisord -c /etc/supervisor/supervisord.conf

有人遇到同样的问题或有解决方案吗?这很烦人,因为它破坏了我的 ansible 配方。谢谢

编辑:

以下是 /etc/supervisor/supervisord.conf 的完整内容:

[unix_http_server]
file=/var/run/supervisor.sock
chmod=0700

[supervisord]
logfile=/var/log/supervisor/supervisord.log
pidfile=/var/run/supervisord.pid
childlogdir=/var/log/supervisor

[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

[supervisorctl]
serverurl=unix:///var/run/supervisor.sock

[include]
files = /etc/supervisor/conf.d/*.conf

以下是所请求的变量:

~> which supervisorctl
/usr/bin/supervisorctl
~> which supervisord
/usr/bin/supervisord
~> supervisord --version
3.1.3

答案1

解决方案其实很简单。Supervisord确实是从/etc/supervisor/supervisord.conf文件开始的,但supervisorctl现在需要将配置文件存储在/etc/supervisord.conf(如官方文档中所述)。我不知道为什么这个更新会失败,supervisorctl但这很烦人。

解决方案 :
# ln -s /etc/supervisor/supervisord.conf /etc/supervisord.conf

相关内容