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        //重新启动配置中的所有程序

 

posted @ 2022-05-15 15:41  Linuxbugs  阅读(154)  评论(0编辑  收藏  举报