centos7 go项目使用supervisor部署

自己用的一个开源go项目,一直都是使用

cd 启动文件所在路径
nohup ./二进制文件

的方式启动的,不过有时候程序会自动退出,为了解决这个问题,将项目使用supervisor来进行部署。
以下是部署和配置的过程:

# 修改supervisor的配置文件
vim /etc/supervisord.conf

# 以下是supervisor中的该项目的配置内容,关于supervisor的配置可以自行百度
[program: 你的项目名称,最好是进程中显示的名字]
command=nohup ./启动文件 &  ; 程序启动命令
directory=启动文件所在路径  ; 执行前要不要先cd到目录去,此处需要切换到执行文件所在目录,不然无法启动
autostart=true       ; 在supervisord启动的时候也自动启动
startsecs=10         ; 启动10秒后没有异常退出,就表示进程正常启动了,默认为1秒
autorestart=true     ; 程序退出后自动重启,可选值:[unexpected,true,false],默认为unexpected,表示进程意外杀死后才重启
startretries=5       ; 启动失败自动重试次数,默认是3
user=root           ; 用哪个用户启动进程,默认是root
numprocs=1			;监控进程数,启动几个进程
priority=989         ; 进程启动优先级,默认999,值小的优先启动
exitcodes=0           ; 正常退出代码(是说退出代码是这个时就不再重启了吗?待确定)
stopsignal=KILL        ; 用来杀死进程的信号
stopwaitsecs=10         ; 发送SIGKILL前的等待时间
redirect_stderr=true ; 把stderr重定向到stdout,默认false
stdout_logfile_maxbytes=50MB  ; stdout 日志文件大小,默认50MB
stdout_logfile_backups = 10   ; stdout 日志文件备份数,默认是10
; stdout 日志文件,需要注意当指定目录不存在时无法正常启动,所以需要手动创建目录(supervisord 会自动创建日志文件)
stdout_logfile=自定义日志输出文件所在路径
stopasgroup=false     ;默认为false,进程被杀死时,是否向这个进程组发送stop信号,包括子进程
killasgroup=false     ;默认为false,向进程组发送kill信号,包括子进程

# 保存配置文件并退出
:wq

如果supervisor还未运行,那么启动supervisor:
supervisord -c /etc/supervisord.conf

如果已经启动,那么重新加载配置文件
supervisorctl reload

通过supervisor自带的web界面就能看到服务启动了。注意supervisor每次配置重载,都会重启所有服务,当然是你设置了 autostart=true,如果是false的话,只会全部关闭。
在这里插入图片描述

发布了70 篇原创文章 · 获赞 23 · 访问量 3万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览