那年那日那朵花

".......(o´ω`o)......"

用supervisor管理gunicorn的一个坑

2016-08-03 17:48 linux python

很简短的,supervisor是管理前台服务的,他不能用来管理后台守护进程。所以用supervisor管理gunicorn的时候,gunicorn的配置文件中一定要配daemon = False!!,如果配置daemon = True的话supervisor启动就会报错。所以但凡用supervisor管理的话,需要将守护进程模式改掉。

另外,如果在supervisor中配置了include项目,每次修改include其中的项目时,不需要重新启动supervisor,可以采用/usr/local/python2.7/bin/supervisorctl update 更新,更新后新添加在配置文件中的项目就会显示了通过 supervisorctl status。然后即可选择是否开启。

给supervisor配置program时,需要注意下面的几个配置项,
autostart = false ; 不让其启动supervisor时同时启动
autrorestart = false ; 不让出现错误自动重启
stopasgroup = true ; 默认为false 也就是说stop 项目时只会kill掉父进程子进程不管,会被pid为1托管,需要配置true 那么就会将其和其所有子进程都kill掉。
用 supervisorctl status 查看项目,supervisorctl help 查看帮助

同时gunicorn启动支持异步worker模式,可以配合gevent,只需要安装好gevent后在gunicorn启动时配置好 -k gevent参数即可。

Cloudhu 个人随笔|built by django|

沪ICP备16019452号-1