Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。它是通过fork/exec的方式把这些被管理的进程当作supervisor的子进程来启动,这样只要在supervisor的配置文件中,把要管理的进程的可执行文件的路径写进去即可。也实现当子进程挂掉的时候,父进程可以准确获取子进程挂掉的信息的,可以选择是否自己启动和报警。
Supervisor是使用python开发的一个进程管工具,安装和使用都非常简单。使用 pip 或者 easy_install 安装会非常方便,自动解决依赖关系。
一、安装命令
pip install supervisor easy_install supervisor
安装完成后系统会增加几个命令:
二、安装好supervisor后需要手动的生成配置文件。
echo_supervisord_conf > /etc/supervisord.conf
supervisor默认读取的配置文件为/etc/supervisord.conf。
生成配置文件后就可以启动了,如果需要指定配置文件启动的话 需要加上参数 -c,如:
supervisord -c /etc/supervisord/supervisord.conf
三、设置配置文件
执行完上面的操作后,配置文件/etc/supervisord.conf就已经生成了。
supervisord.conf 基本配置项说明,由于其参数比较多,这些只贴出一些常用的配置项,详细内容可参阅官网。 “;” 符号是表示该行配置被注释。
[unix_http_server] file=/home/supervisor/supervisor.sock ; supervisorctl使用的 socket文件的路径 ;chmod=0700 ; 默认的socket文件权限0700 ;chown=nobody:nogroup ; socket文件的拥有者 [inet_http_server] ; 提供web管理后台管理相关配置 port=0.0.0.0:9001 ; web管理后台运行的ip地址及端口,绑定外网需考虑安全性 ;username=root ; web管理后台登录用户名密码 ;password=root [supervisord] logfile=/var/log/supervisord.log ; 日志文件,默认在$CWD/supervisord.log logfile_maxbytes=50MB ; 日志限制大小,超过会生成新文件,0表示不限制 logfile_backups=10 ; 日志备份数量默认10,0表示不备份 loglevel=info ; 日志级别 pidfile=/home/supervisor/supervisord.pid ; supervisord pidfile; default supervisord.pid ; pid文件 nodaemon=false ; 是否在前台启动,默认后台启动false minfds=1024 ; 可以打开文件描述符最小值 minprocs=200 ; 可以打开的进程最小值 [supervisorctl] serverurl=unix:///home/supervisor/supervisor.sock ; 通过socket连接supervisord,路径与 [include] ;files = /etc/supervisor/conf.d/*.ini ;指定了在当前目录supervisor.d文件夹下配置多个配置文件
在配置文件中,我们需要做的在后面加上需要被管理的uwsgi和celery,如:
[program:uwsgi] command=uwsgi --ini /var/www/project/app01/uwsgi.ini ; 启动uwsgi,路径改为项目的路径 directory=/var/www/project ;项目目录 stopsignal=QUIT autostart=true autorestart=true redirect_stderr=true stdout_logfile=/var/www/project/uwsgi.log ; uwsgi日志
[program:celery] command=celery -A project worker --loglevel=info --pool=solo ; 启动celery的worker directory=/var/www/project ; 项目目录 stopsignal=QUIT autostart=true autorestart=true redirect_stderr=true stdout_logfile=/var/www/project/logs/celery.log ; celery日志
四、启动
设置完配置文件后启动supervisor就可以管理uwsgi和celery了。
启动命令:
supervisord
supervisorctl
如果supervisord配置文件不再默认位置,使用supervisorctl工具时需要指定配置文件路径
supervisordctl -c 配置文件路径 supervisordctl status #查看进程运行状态 supervisordctl start 进程名 #启动进程 all 表示全部 supervisordctl stop 进程名 #关闭进程 supervisordctl restart 进程名 # 重启进程 supervisordctl update # 重新载入配置文件 supervisordctl shutdown # 关闭supervisord supervisordctl clear 进程名 # 清空进程日志
原文:https://www.cnblogs.com/ray-h/p/11064665.html