supervisor的基本使用
安装并查看supervisor
pip install supervisor
创建配置目录及配置文件
mkdir -p /home/app/supervosir mkdir -p /home/app/supervosir/config.d
创建配置文件
vim /home/app/supervosir/supervisor.conf[unix_http_server] file=/tmp/supervisor.sock ;UNIX socket 文件,supervisorctl 会使用 ;chmod=0700 ;socket文件的mode,默认是0700 chown=sysomc:sysomc ;socket文件的owner,格式:uid:gid ;[inet_http_server] ;HTTP服务器,提供web管理界面 ;port=127.0.0.1:9001 ;Web管理后台运行的IP和端口,如果开放到公网,需要注意安全性 ;username=user ;登录管理后台的用户名 ;password=123 ;登录管理后台的密码 [rpcinterface:supervisor] supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface [supervisord] logfile=/tmp/supervisord.log ;日志文件,默认是 $CWD/supervisord.log logfile_maxbytes=50MB ;日志文件大小,超出会rotate,默认 50MB,如果设成0,表示不限制大小 logfile_backups=10 ;日志文件保留备份数量默认10,设为0表示不备份 loglevel=info ;日志级别,默认info,其它: debug,warn,trace pidfile=/tmp/supervisord.pid ;pid 文件 nodaemon=false ;是否在前台启动,默认是false,即以 daemon 的方式启动 minfds=1024 ;可以打开的文件描述符的最小值,默认 1024 minprocs=200 ;可以打开的进程数的最小值,默认 200 [supervisorctl] serverurl=unix:///tmp/supervisor.sock ;通过UNIX socket连接supervisord,路径与unix_http_server部分的file一致 ;serverurl=http://127.0.0.1:9001 ; 通过HTTP的方式连接supervisord ;包含其它配置文件 [include] files = /home/sysomc/programs/supervisor/config.d/*.ini ;可以指定一个或多个以.ini结束的配置文件
启动服务
supervisord -c /home/app/supervosir/supervisor.conf
# 默认会后台运行
添加supervisortal的alias
vim ~/.bashrc alias supervisorctl="supervisorctl -c /home/sysomc/programs/supervisor/supervisor.conf" # 保存后,重新加载 source ~/.bashrc
在conf.d目录内添加要运行的服务配置:
配置如下 vim conf.d/blog.ini
[program:blog] #脚本目录 directory=/home/sysomc/programs/SayHello/ #脚本执行命令 command=/home/sysomc/programs/venv/flask/bin/gunicorn -c gunicorn.conf.py manage:app #supervisor启动的时候是否随着同时启动,默认True autostart=true #当程序exit的时候,这个program不会自动重启,默认unexpected,设置子进程挂掉后自动重启的情况,有三个选项,false,unexpected和true。如果为false的时候,无论什么情况下,都不会被重新启动,如果为unexpected,只有当进程的退出码不在下面的exitcodes里面定义的 autorestart=false #这个选项是子进程启动多少秒之后,此时状态如果是running,则我们认为启动成功了。默认值为1 startsecs=1 #脚本运行的用户身份 user = sysomc #日志输出 stderr_logfile=/tmp/blog_stderr.log stdout_logfile=/tmp/blog_stdout.log #把stderr重定向到stdout,默认 false redirect_stderr = true #stdout日志文件大小,默认 50MB stdout_logfile_maxbytes = 20MB #stdout日志文件备份数 stdout_logfile_backups = 20
重新加载配置,启动blog服务
supervisorctl update
supervisorctl status
其他命令
supervisorctl status //查看所有进程的状态 supervisorctl stop es //停止es supervisorctl start es //启动es supervisorctl restart //重启es supervisorctl update //配置文件修改后使用该命令加载新的配置 supervisorctl reload //重新启动配置中的所有程序
转载请标明出处:http://www.cnblogs.com/duzhaoqi/