使用supervisor守护gunicorn运行

1、安装supervisor

supervisor4.0.0已支持python3,需使用pip安装

sudo pip install supervisor

2、软连接,使其正常执行命令

sudo ln -s /usr/local/bin/supervisord /usr/bin/supervisord

sudo ln -s /usr/local/bin/supervisorctl /usr/bin/supervisorctl

3、产生设置

sudo mkdir /etc/supervisor #创建supervisor,若存在请忽略

sudo mkdir /etc/supervisor/conf.d #创建conf.d,若存在请忽略

sudo echo_supervisord_conf > /etc/supervisor/supervisord.conf 添加设置

4、修改设置

sudo vim /etc/supervisor/supervisord.conf #在[supervisord]下面添加environment=LC_ALL='en_US.UTF-8',LANG='en_US.UTF-8'解决编码问题,将末尾的[include]部分改为:files = /etc/supervisor/conf.d/*.conf 读取用户配置

5、设置开机自启

sudo vim /usr/lib/systemd/system/supervisord.service

#添加以下内容并保存

[Unit]

Description=Supervisor daemon

[Service]

Type=forking

ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf #读取配置

ExecStop=/usr/bin/supervisorctl shutdown

ExecReload=/usr/bin/supervisorctl reload

KillMode=process

Restart=on-failure

RestartSec=42s

[Install]

WantedBy=multi-user.target

5、使用systemctl执行相关命令

sudo systemctl start supervisord #启动 Supervisor 服务

sudo systemctl stop supervisord #停止 Supervisor 服务

sudo systemctl restart supervisord #重启 Supervisor 服务

sudo systemctl status supervisord #查看 Supervisor 服务状态

sudo systemctl enable supervisord #设置 Supervisor 服务开机自启动

sudo systemctl disable supervisord #关闭 Supervisor 服务开机自启动

6、安装gunicorn

进入项目根目录

pipenv install gunicorn

7、用户配置

sudo vim /etc/supervisor/conf.d/xxx.conf #xxx项目名称

#添加以下内容

[program:xxx] #xxx项目名称

command=pipenv run gunicorn -w 5 app:app #使用pipenv运行gunicorn程序 -w 5(2*cpu核心数 + 1)

directory=/home/overman/fangjuhe #项目根目录

user=xxx #创建该项目用户

autostart=true #在supervisord启动的时候也自动启动

autorestart=true #程序异常退出后自动重启

stopasgroup=true #确保关闭supervisord时停止所有相关子进程

killasgroup=true #确保关闭supervisord时停止所有相关子进程

你可能感兴趣的:(使用supervisor守护gunicorn运行)