我使用 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