折腾:
【已解决】Mac本地用supervisor和gunicorn启动和管理Flask的app
期间,Mac中运行supervisorctl status出错:
1 2 3 4 | ➜ xxxRobotDemoServer git:(master) ✗ supervisord -c conf /supervisor/supervisord_local .conf ➜ xxxRobotDemoServer git:(master) ✗ supervisorctl status http: //localhost :9001 refused connection |
9001拒绝连接。
然后搜了下,现在的
conf/supervisor/supervisord_local.conf
中有9001的值,但是都是注释掉的:
1 2 3 4 5 6 7 8 9 | [supervisorctl] ;serverurl = unix: / / / tmp / supervisor.sock ; use a unix: / / URL for a unix socket serverurl = unix: / / / var / run / supervisor.sock ; use a unix: / / URL for a unix socket ;serverurl = http: / / 127.0 . 0.1 : 9001 ; use an http: / / url to specify an inet socket ;[inet_http_server] ; inet (TCP) server disabled by default ;port = 127.0 . 0.1 : 9001 ; ip_address:port specifier, * :port for all iface |
mac supervisord http://localhost:9001 refused connection
mac supervisor http://localhost:9001 refused connection
16.04 – supervisorctl 3.3.1 http://localhost:9001 refused connection – Ask Ubuntu
去开启inet_http_server试试
1 2 | [inet_http_server] ; inet (TCP) server disabled by default port=127.0.0.1:9001 ; ip_address:port specifier, *:port for all iface |

需要重新加载配置
但是又没法使用supervisorctl
然后试了试:
1 2 3 | ➜ xxxRobotDemoServer git:(master) ✗ supervisord -c conf /supervisor/supervisord_local .conf Error: Another program is already listening on a port that one of our HTTP servers is configured to use. Shut this program down first before starting supervisord. For help, use /Users/crifan/Library/Python/2 .7 /bin/supervisord -h |
看来只能强制干掉对应进程了?
1 2 3 4 5 6 | ➜ xxxRobotDemoServer git:(master) ✗ ps aux | grep supervisor crifan 54179 0.1 0.1 4310560 7528 ?? Ss 2 : 24PM 0 : 02.93 / usr / bin / python / Users / crifan / Library / Python / 2.7 / bin / supervisord - c conf / supervisor / supervisord_local.conf crifan 54745 0.0 0.0 4267752 736 s007 R + 2 : 34PM 0 : 00.00 grep - - color = auto - - exclude - dir = .bzr - - exclude - dir = CVS - - exclude - dir = .git - - exclude - dir = .hg - - exclude - dir = .svn supervisor ➜ xxxRobotDemoServer git:(master) ✗ kill - 9 54179 ➜ xxxRobotDemoServer git:(master) ✗ ps aux | grep supervisor crifan 54788 0.0 0.0 4267752 648 s007 R + 2 : 34PM 0 : 00.00 grep - - color = auto - - exclude - dir = .bzr - - exclude - dir = CVS - - exclude - dir = .git - - exclude - dir = .hg - - exclude - dir = .svn supervisor |
然后再去启动,果然可以了:
1 2 3 4 | ➜ xxxRobotDemoServer git:(master) ✗ supervisord -c conf /supervisor/supervisord_local .conf Unlinking stale socket /var/run/supervisor .sock ➜ xxxRobotDemoServer git:(master) ✗ supervisorctl status robotDemo RUNNING pid 54817, uptime 0:00:00 |
【总结】
Mac本地用supervisord启动gunicorn的Flask的app时,之前配置没有开启inet_http_server:
conf/supervisor/supervisord_local.conf
1 2 | ;[inet_http_server] ; inet (TCP) server disabled by default ;port=127.0.0.1:9001 ; ip_address:port specifier, *:port for all iface |
所以启动:
1 | supervisord -c conf /supervisor/supervisord_local .conf |
后,去用supervisorctl status连不上, 出现:
1 2 3 | ➜ xxxRobotDemoServer git:(master) ✗ supervisorctl status http: //localhost :9001 refused connection |
已经规定了:
1 2 3 4 | A TCP host:port value or (e.g. 127.0.0.1:9001) on which supervisor will listen for HTTP /XML-RPC requests. supervisorctl will use XML-RPC to communicate with supervisord over this port. To listen on all interfaces in the machine, use :9001 or *:9001. Default: No default. Required: Yes. Introduced: 3.0 |
所以需要去开启:
1 2 | [inet_http_server] ; inet (TCP) server disabled by default port=127.0.0.1:9001 ; ip_address:port specifier, *:port for all iface |
然后重启supervisord即可。
注:
正常情况下,可以通过
supervisorctl reload
去重新加载配置的,但是此处由于无效,所以是通过
1 | px aux| grep supervisor |
找到进程号54179,然后:
1 2 | kill -9 54179 |
强制杀掉supervisord
然后重启运行即可:
1 2 3 4 | ➜ xxxRobotDemoServer git:(master) ✗ supervisord -c conf /supervisor/supervisord_local .conf Unlinking stale socket /var/run/supervisor .sock ➜ xxxRobotDemoServer git:(master) ✗ supervisorctl status robotDemo RUNNING pid 54817, uptime 0:00:00 |
转载请注明:在路上 » 【已解决】Mac中运行supervisord再运行supervisorctl出错:http://localhost:9001 refused connection