supervisor 介绍
使用python开发的进程管理工具,监听、启动、停止、重启一个或多个进程。进程被kill后悔自动重启,保证服务可用
supervisor 应用
- 安装
yum install -y supervisor
- 生成配置文件
echo_supervisord_conf > /home/op/supervisord.conf
- 配置文件,相互隔离
mkdir /home/op/supervisord.d/
- 修改配置文件
vi /home/op/supervisord.conf
- 加入以下配置信息
[include]
files = /home/op/supervisord.d/*.conf
## 安装、配置、一键完成
yum install -y supervisor \
&& echo_supervisord_conf > /home/op/supervisord.conf \
&& mkdir /home/op/supervisord.d \
&& echo [include] >> /home/op/supervisord.conf \
&& echo files = /home/op/supervisord.d/*.conf >> /home/op/supervisord.conf
在supervisord.conf中设置通过web可以查看管理的进程,加入以下代码(默认即有,取消注释即可)
[inet_http_server]
port=9001
username=user
password=123
conf 配置
./supervisor/ins_django.conf
[program:ins_django] ; 程序名称,可以通过ctl指定名称进行控制
directory = /home/op/ins ; 程序的启动目录
command = python3 manage.py runserver 0.0.0.0:63999 --insecure ; 启动命令,可以看出与手动在命令行启动的命令是一样的
autostart = true ; 在 supervisord 启动的时候也自动启动
startsecs = 5 ; 启动 5 秒后没有异常退出,就当作已经正常启动了
autorestart = true ; 程序异常退出后自动重启
startretries = 3 ; 启动失败自动重试次数,默认是 3
user = op ; 用哪个用户启动
redirect_stderr = true ; 把 stderr 重定向到 stdout,默认 false
stdout_logfile_maxbytes = 20MB ; stdout 日志文件大小,默认 50MB
stdout_logfile_backups = 20 ; stdout 日志文件备份数
; stdout 日志文件,需要注意当指定目录不存在时无法正常启动,所以需要手动创建目录(supervisord 会自动创建日志文件)
stdout_logfile = /home/op/ins/log/django.log
## 将你的配置文件cp到supervisord.d
cp -r ./supervisor/* /home/op/supervisord.d/
相关命令
## 执行所有
supervisord -c /home/op/supervisord.conf
## 查看状态
supervisorctl status
## 启动/停止
supervisorctl start/stop ins_django