安装 apt install supervisor
安装完成后 生成的supervisord.conf 文件一般在 /etc/supervisor文件夹下
查看这个配置文件 最后的include 属性
这个属性的位置就是配置program的位置
比如
[include]
files = /etc/supervisor/conf.d/*.conf
那么我就在con.d文件夹下写配置文件
vi eureka_server.conf
[program:eureka_server]
directory = /home/lidan/Eureka_server ; 程序的启动目录
command = python app.py ; 启动命令
autostart = true ; 在 supervisord 启动的时候也自动启动
startsecs = 5 ; 启动 5 秒后没有异常退出,就当作已经正常启动了
autorestart = true ; 程序异常退出后自动重启
startretries = 3 ; 启动失败自动重试次数,默认是 3
user = root ; 用哪个用户启动
redirect_stderr = true ; 把 stderr 重定向到 stdout,默认 false
stdout_logfile_maxbytes = 20MB ; stdout 日志文件大小,默认 50MB
stdout_logfile_backups = 1 ; stdout 日志文件备份数
; stdout 日志文件,需要注意当指定目录不存在时无法正常启动,所以需要手动创建目录(supervisord 会自动创建日志文件)
stdout_logfile = /home/lidan/Eureka_server/supervisor_stdout_flask.log
stopasgroup = true ;
killasgroup = true ;
然后记得重启 supervisor
supervisorctl reload
然后启动 program:eureka_server
supervisorctl start eureka_server
同理
celery worker也是
[program:eureka_server_worker]
directory = /home/lidan/Eureka_server ; 程序的启动目录
command = celery worker -B -A tasks --loglevel=info ; 启动命令
autostart = true ; 在 supervisord 启动的时候也自动启动
startsecs = 5 ; 启动 5 秒后没有异常退出,就当作已经正常启动了
autorestart = true ; 程序异常退出后自动重启
startretries = 3 ; 启动失败自动重试次数,默认是 3
user = root ; 用哪个用户启动
redirect_stderr = true ; 把 stderr 重定向到 stdout,默认 false
stdout_logfile_maxbytes = 20MB ; stdout 日志文件大小,默认 50MB
stdout_logfile_backups = 1 ; stdout 日志文件备份数
; stdout 日志文件,需要注意当指定目录不存在时无法正常启动,所以需要手动创建目录(supervisord 会自动创建日志文件)
stdout_logfile = /home/lidan/Eureka_server/supervisor_stdout.log
stopasgroup = true ;
killasgroup = true ;