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的话,只会全部关闭。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值