pipe理器套接字错误问题
$ supervisorctl reread error: <class 'socket.error'>, [Errno 111] Connection refused: file: /usr/lib64/python2.6/socket.py line: 567
我正尝试在我的生产系统上configuration主pipe,但是遇到了这个错误。 pipe理员日志文件是空的。
当我inputsupervisorctl
,它会抱怨:
http://localhost:9001 refused connection
目前没有任何东西正在9001端口收听,AFACT: lsof | grep TCP
lsof | grep TCP
什么也不返回。
你必须先启动supervisord,然后才能使用supervisorctl。 在我的情况下:
sudo supervisord -c /etc/supervisor/supervisord.conf sudo supervisorctl -c /etc/supervisor/supervisord.conf
如果你开始监督一个自定义的path,像这样:
sudo supervisord -c /mypath/supervisord.conf
那么你也应该用相同的参数启动superctctl,像这样:
sudo supervisorctl -c /mypath/supervisord.conf
如果您使用-c
的相对URL启动主pipe,然后尝试从其他目录运行supervisorctl,则可能会遇到此问题。
例如:
supervisord -c supervisord.conf supervisorctl start someapp ## works cd somedirectory supervisorctl restart someapp ## http://localhost:9001 refused connection
解决方法是始终使用绝对path。 例如:
好:
supervisord -c /etc/supervisor/supervisord.conf
坏:
supervisord -c supervisord.conf
当使用supervisord.conf
文件的旧版本时,也会发生此问题。 较新版本的pipe理程序使用不同的configuration文件。 上述解决scheme不起作用。 在这种情况下,你只需要重新生成configuration文件
echo_supervisord_conf > /etc/supervisord.conf
希望它能帮助别人。
请执行以下操作:
sudo service supervisor start
一切正常的post,因为B4 – 有一个版本的问题
sudo supervisorctl reload
supervisord
和supervisorctl
使用-c
whit绝对configuration文件path,确保两个命令都以相同的configuration启动。