1. 安装:
pip3 install supervisor
2. 默认安装路径跟python同目录:
cd /usr/local/python3/bin/
3. 获取配置和文件:
./echo_supervisord_conf > supervisord.conf
4. 创建配置文件目录:
mkdir -p /etc/supervisor/conf.d
5. 移动配置文件到配置文件目录:
mv supervisord.conf /etc/supervisor/
6. 编辑配置文件:
vi /etc/supervisor/supervisord.conf
# 指定脚本配置文件的位置
[include] files = /etc/supervisor/conf.d/*.ini
7. 编辑脚本配置文件:
vi /etc/supervisor/conf.d/conf.ini
# 主要是写清楚命令和日志位置 [program:log] command=python3 log.py > /apps/radius/log.log 2>&1 & directory=/apps/log autostart=true autorestart=unexpected user=root stdout_logfile=/etc/supervisor/log/radiuslog-stdout.log stderr_logfile=/etc/supervisor/log/radiuslog-stderr.log
# 给出一个详细配置说明
[program:exmaple] # example是在supercisor中的进程名,随便取啥 command=/usr/local/bin/gunicorn -w 4 -b 127.0.0.1:91 run:app # 上述代码为使用gunicorn 运行flask。run是你的文件名 :app指的是app = Flask(__name__)此处的app 或者是 command=/usr/local/bin/python3 /root/test/test.py numprocs=1 ; number of processes copies to start (def 1) autostart = true ; 在 supervisord 启动的时候也自动启动 startsecs = 1 ; 启动 1 秒后没有异常退出,就当作已经正常启动了 autorestart = true ; 程序异常退出后自动重启 startretries = 3 ; 启动失败自动重试次数,默认是 3 user = root ; 用哪个用户启动 redirect_stderr = true ; 把 stderr 重定向到 stdout,默认 false stdout_logfile_maxbytes = 20MB ; stdout 日志文件大小,默认 50MB stdout_logfile_backups = 10 ; stdout 日志文件备份数 stdout_logfile=/**自定义路径/gunicorn.log ; log 日志 stderr_logfile=/**自定义路径/gunicorn.error ; 错误日志的绝对路径
8. 最后是运行:
/usr/local/python3/bin/supervisord -c /etc/supervisor/supervisord.conf