Supervisorctl 错误:unix:///var/run/supervisord.sock 拒绝连接?

20
这是我的配置文件。我运行命令supervisord -c /etc/supervisor/supervisord.conf,它能够正常工作。但当我尝试运行supervisorctl -c /etc/supervisor/supervisord.conf时,出现了错误:

Error: , Unknown protocol for serverurl /var/run/supervisord.sock: file: /usr/local/lib/python2.7/dist-packages/supervisor-3.0b2-py2.7.egg/supervisor/xmlrpc.py line: 440

虽然我可以通过http://127.0.0.1:9001完美地启动或停止我的程序,但我想在命令行中控制程序。有谁能帮我吗?
[unix_http_server]
file = /var/run/supervisor.sock
chmod = 0777
chown= root:cruelcage

[inet_http_server]
port=9001
username = cruelcage
password = 123

[supervisorctl]
serverurl = /var/run/supervisord.sock

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

[supervisord]
logfile=/home/cruelcage/log/supervisord/supervisord.log ; (main log file;default $CWD/supervisord.log)
logfile_maxbytes=50MB       ; (max main logfile bytes b4 rotation;default 50MB)
logfile_backups=10          ; (num of main logfile rotation backups;default 10)
loglevel=info               ; (log level;default info; others: debug,warn,trace)
pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
nodaemon=true              ; (start in foreground if true;default false)
minfds=1024                 ; (min. avail startup file descriptors;default 1024)
minprocs=200                ; (min. avail process descriptors;default 200)
#user=root                 ; (default is current user, required if root)
childlogdir=/home/cruelcage/log/supervisord/            ; ('AUTO' child log dir, default $TEMP)

[program:config]
command=python /home/cruelcage/documents/config/config.py
autostart = true
startsecs = 5
user = cruelcage
redirect_stderr = true
stdout_logfile_maxbytes = 20MB
stdoiut_logfile_backups = 20
stdout_logfile = /home/cruelcage/log/debug.log
3个回答

24
有时在安装后,监督者配置文件不会自动生成,您需要手动编写它:

有时在安装后,监督者配置文件不会自动生成,您需要手动编写它:

echo_supervisord_conf > /etc/supervisord.conf
sudo supervisord -c /etc/supervisord.conf
sudo supervisorctl status

32
尽管这段代码可能解决问题,但包括解释确实有助于提高您的帖子质量。请记住,您是为未来的读者回答问题,而这些人可能不知道您提出代码建议的原因。 - DimaSan

13
你的[supervisorctl] serverurl 应该是 "unix:///var/run/supervisord.sock",因为 "/var/run/supervisord.sock" 不是 xmlrpclib 连接的有效URI。

5

我曾遇到这个问题,发现它是在服务器重新启动后发生的。当supervisor尝试之后重新启动时,在我的守护进程配置文件中指定的日志目录找不到(此问题在supervisor运行时未出现)。

我所需要做的就是更改stdout_logfile路径(或注释掉该行),在我的文件中:

(将#####换成你的文件id)

sudo nano /etc/supervisor/conf.d/daemon-#####.conf

添加一个现有的日志文件路径或者在行首加上 # 注释掉该行:

#stdout_logfile=/my/bad/log/directory

然后重新启动supervisor:

sudo service supervisor restart


谢谢,你救了我的一天。谁知道错误是关于找不到日志文件的? - Andrei Nikolaenko

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接