105
$ supervisorctl reread
error: <class 'socket.error'>, [Errno 111] Connection refused: file: /usr/lib64/python2.6/socket.py line: 567

我正在尝试在我的生产系统上配置主管,但遇到了这个错误。主管日志文件为空。

当我键入supervisorctl时,它会抱怨:

http://localhost:9001 refused connection

当前没有在端口 9001 上侦听,AFACT:lsof | grep TCP没有返回任何内容。

4

7 回答 7

185

您必须先启动 supervisord,然后才能使用 supervisorctl。就我而言:

sudo supervisord -c /etc/supervisor/supervisord.conf
sudo supervisorctl -c /etc/supervisor/supervisord.conf
于 2013-09-17T21:43:25.117 回答
39

如果您使用自定义路径启动 supervisord,如下所示:

sudo supervisord -c /mypath/supervisord.conf

然后您还应该使用相同的参数启动 supervisorctl,如下所示:

sudo supervisorctl -c /mypath/supervisord.conf
于 2014-12-21T03:52:47.970 回答
13

如果您使用相对 url 启动 supervisor,-c然后尝试从不同的目录运行 supervisorctl,您可能会遇到此问题。

例如:

supervisord -c supervisord.conf
supervisorctl start someapp ## works 
cd somedirectory
supervisorctl restart someapp ## http://localhost:9001 refused connection

解决方案是始终使用绝对路径。例如:

好的:

supervisord -c /etc/supervisor/supervisord.conf

坏的:

supervisord -c supervisord.conf
于 2014-11-10T08:01:23.860 回答
5

supervisord.conf使用旧版本的文件时也会出现此问题。较新版本的主管使用不同的配置文件。上述解决方案不起作用。在这种情况下,您只需要重新生成配置文件

echo_supervisord_conf > /etc/supervisord.conf

希望它可以帮助某人。

于 2016-09-22T18:34:07.997 回答
4

请执行以下操作:

sudo service supervisor start

发布一切正常的帖子 - 1b版本有问题

sudo supervisorctl reload

于 2017-01-04T18:19:31.627 回答
2

在带有分发包的 Ubuntu 18.04 中

/etc/supervisord.conf当我的服务管理器 ( systemd ) 使用配置文件时,您可能犯了和我一样的错误,创建了配置文件/etc/supervisor/supervisord.conf

sudo rm /etc/supervisord.conf

或者

sudo mv /etc/supervisord.conf /etc/supervisor/supervisord.conf

如果你想保留它

现在你可以运行sudo supervisorctl


为什么?

当您运行supervisorctl它时,首先搜索位于 的配置文件/etc/supervisord.conf,如果它不存在,它将搜索包的默认文件,/etc/supervisor/supervisord.conf这是systemd实际运行的文件。

Systemd始终使用该文件/etc/supervisor/supervisord.conf,而不管其他文件是否存在。

您可以通过运行检查哪个文件正在使用systemdsudo systemctl status supervisor

在此处输入图像描述 您可以在最后一行看到硬编码配置文件的命令

于 2019-03-12T22:03:29.483 回答
-1

两者都supervisord使用supervisorctl绝对-c配置文件路径,确保两个命令以相同的配置启动。

于 2016-09-04T11:20:37.577 回答