supervisor 工具的使用
说明
# 使用supervisor这个python开发的进程管理工具,用它启动uwsgi之后,uwsgi进程挂掉后,自动会再启动
比如,crm的部署技术栈
nginx+uwsgi+django+mysql ,我们可以手动的,单独启动每一个进程 还可以通过supervisor一键启动这四个进程,进行批量管理,批量启停 ,很好用
1. 安装 supervisor
[root@s25linux ~]# yum install supervisor -y
2. 生成supervisor的配置文件
[root@s25linux ~]# echo_supervisord_conf > /etc/supervisord.conf
3. 获取启动uwsgi的绝对路径的命令
# 1.找到uwsgi的绝对路径 which uwsgi
/opt/venv_crm_again/bin/uwsgi
# 2.找到uwsgi.ini的绝对路径
/opt/tf_crm/uwsgi.ini
# 3.所以利用uwsgi启动crm命令就是
/opt/venv_crm_again/bin/uwsgi --ini /opt/tf_crm/uwsgi.ini
4. 编辑配置文件
修改supervisor的配置文件,添加管理crm的任务
vim /etc/supervisor.conf # 再最底行,添加如下内容
#[program:xx]是被管理的进程配置参数,xx是进程的名称[program:s25crm]
command=写入启动uwsgi的命令 ;supervisor其实就是在帮你执行命令而已!
autostart=true ; 在supervisord启动的时候也自动启动
startsecs=10 ; 启动10秒后没有异常退出,就表示进程正常启动了,默认为1秒
autorestart=true ; 程序退出后自动重启,可选值:[unexpected,true,false],默认为unexpected,表示进程意外杀死后才重启
stopasgroup=true ;默认为false,进程被杀死时,是否向这个进程组发送stop信号,包括子进程
killasgroup=true ;默认为false,向进程组发送kill信号,包括子进程
5. 启动supervisor
# 启动supervisor,默认就会直接启动uwsgi了
supervisord -c /etc/supervisord.conf #启动supervisor服务端,指定配置文件启动
6. 检查进程信息
ps -ef|grep supervisor #检查supervisor是否存在了进程,是否启动
ps -ef|grep uwsgi #检查uwsgi是否启动
7. supervisor任务管理终端
supervisorctl -c /etc/supervisord.conf
# 看到如下的结果,表示你自定义的任务s25crm,也就是uwsgi进程,正确的启动了
(venv_crm_again) [root@s25linux tf_crm]# supervisorctl -c /etc/supervisord.conf
s25crm RUNNING pid 41451, uptime 0:01:34
supervisor>
8. 打开浏览器访问项目,看到了没有静态文件的 crm界面,就是正确的了
9. supervisorctl的管理命令
(venv_crm_again) [root@s25linux tf_crm]# supervisorctl -c /etc/supervisord.conf
s25crm RUNNING pid 41451, uptime 0:01:34
supervisor>
supervisor>start s25crm # 启动 s25crm 项目
supervisor>stop s25crm # 停止 s25crm 项目
supervisor>status # supervisor 运行状态
supervisor>start all # 启动 所有 项目
supervisor>stop all # 停止 所有 项目
10. *uwsgi异常崩溃的话,supervisor会立即重启uwsgi
如果要运行多个 uwsgi项目,在supervisor中定义多个任务即可
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
