1.简介
supervisor是由python开发的进程管理工具,可以帮助我们更好的管理进程
在以后的项目部署中,我们可能需要手动的启停每一个进程,如nginx+uwsgi+django+mysql,supervisor可以帮助我们一键启停
2.配置
2.1 安装
sudo apt install supervisor
2.2 生成配置文件
echo_supervisord_conf > /etc/supervisord.conf
2.3 在配置文件中添加任务管理
[program:crm] # s25crm为任务名字 command= /opt/venv_crm_again/bin/uwsgi --ini /opt/tf_crm/uwsgi.ini --plugin python3 #写入启动uwsgi的命令,supervisor其实就是在帮你执行命令而已! autostart=true ; 在supervisord启动的时候也自动启动 startsecs=10 ; 启动10秒后没有异常退出,就表示进程正常启动了,默认为1秒 autorestart=true ; 程序退出后自动重启,可选值:[unexpected,true,false],默认为unexpected,表示进程意外杀死后才重启 stopasgroup=true ;默认为false,进程被杀死时,是否向这个进程组发送stop信号,包括子进程 killasgroup=true ;默认为false,向进程组发送kill信号,包括子进程
2.4 启动
supervisord -c /etc/supervisord.conf #启动supervisor服务端,指定配置文件启动
2.5 任务终端管理
supervisorctl -c /etc/supervisord.conf (venv) [root@s25linux tf_crm]# supervisorctl -c /etc/supervisord.conf crm RUNNING pid 41451, uptime 0:01:34 supervisor> supervisor>start s25crm # 启动任务 supervisor>stop s25crm # 停止任务 supervisor>status # 任务状态 supervisor>start all # 开启都有任务 supervisor>stop all # 终止所有任务
在以后如果管理的任务异常退出,supervisor会帮助我们重启,如果需要运行多个不同的进程,在配置文件中定义多个任务就可以