不能在 /etc/supervisor 目录之外使用 supervisorctl

Dep*_*ado 2 debian supervisord

我已经使用主管一年多了。它是从 Debian 软件包安装的。前几天当我升级包时,有些东西坏了,我似乎无法弄清楚是什么。

~> sudo supervisorctl status
http://localhost:9001 refused connection
~> cd /etc/supervisor
~> sudo supervisorctl status
# Works
Run Code Online (Sandbox Code Playgroud)

在我的/etc/supervisor/supervisord.conf.

[supervisorctl]
serverurl=unix:///var/run/supervisor.sock
Run Code Online (Sandbox Code Playgroud)

看起来当我不在/etc/supervisor文件夹内时,配置没有加载并且主管使用默认值(http://localhost:9001是默认值serverurl

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

/usr/bin/python /usr/bin/supervisord -c /etc/supervisor/supervisord.conf
Run Code Online (Sandbox Code Playgroud)

任何人有同样的问题或解决方案?这很烦人,因为它打破了我的可靠食谱。谢谢

编辑:

这是 /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
Run Code Online (Sandbox Code Playgroud)

这是请求的变量:

~> which supervisorctl
/usr/bin/supervisorctl
~> which supervisord
/usr/bin/supervisord
~> supervisord --version
3.1.3
Run Code Online (Sandbox Code Playgroud)

Dep*_*ado 7

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

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