一、简介
Supervisor 在百度百科上给的定义是超级用户,监管员。Supervisor是一个进程管理工具,当进程中断的时候Supervisor能自动重新启动它。可以运行在各种类unix的机器上,supervisor就是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。
二、下载
我的服务器是linux Centos 输入以下命令,进行安装,当然还有其他方式,可以去百度下。
yum install -y supervisor
安装完成后,在我们的 /etc目录下会有一个supervisord.conf文件,这个就是我们的配置文件,一般主配置文件不要动 后面我们建立一个副本启动他就行
三、查看是否安装成功
supervisord -v
四、启动
supervisord -c /etc/supervisord.conf
然后我们输入以下命令查看运行状态
ps -ef | grep supervisord
五、demo 运行一个python 脚步
配置supervisor /etc 目下配置 supervisord.conf 尾部添加
[include]
files = supervisord.d/*.ini
在www/wwwr 目录下创建一个python脚步
test.py
import time
while True:
print("我正在输出:",time.time())
用supervisor运行我们的脚步 vim /etc/supervisord.d/run.ini
[program:amazon_server] ;是被管理的进程配置参数,xx是进程的名称
directory=/www/wwwroot ;运行的脚步目录
command=python3 test.py;启动命令
autostart=true;在supervisord启动的时候也自动启动
autorestart=true; 程序退出后自动重启,可选值:[unexpected,true,false],默认为unexpected,表示进程意外杀死后才重启
startsecs=10;启动10秒后没有异常退出,就表示进程正常启动了,默认为1秒
startretries=3;启动失败自动重试次数,默认是3
exitcodes=0,2;当程序的退出码为 0 或 2 时,重启
stopsignal=QUIT;停止信号
stopwaitsecs=10;延时停止时间,收到停止指令后多久停止
user=root;用哪个用户启动进程,默认是root
log_stdout=true
log_stderr=true
logfile=/tmp/echo_time.log
logfile_maxbytes=1MB
logfile_backups=10
stdout_logfile_maxbytes=20MB; stdout 日志文件大小,默认50MB
stdout_logfile_backups=20; stdout 日志文件备份数,默认是10
stdout_logfile=/tmp/echo_time.stdout.log;日志文件位置
重新启动下
supervisorctl update
查看我们运行状态
supervisorctl status
//amazon_server RUNNING pid 3852, uptime 1:50:27
查看输出日志
tailf -n 500 /tmp/echo_time.stdout.log
结果:
我真在输出: 1615428936.6700208
我真在输出: 1615428938.6721468
我真在输出: 1615428940.6742756
我真在输出: 1615428942.6764135
我真在输出: 1615428944.678528
我真在输出: 1615428946.67976
我真在输出: 1615428948.6818888
我真在输出: 1615428950.6840208
我真在输出: 1615428952.686138
我真在输出: 1615428954.6882813
我真在输出: 1615428956.6903903