ubuntu环境使用supervisor部署Go应用

 

首先进行前期准备,安装supervisor

sudo apt-get install supervisor

安装后,通过Supervisor附送的贴心的小脚本生成默认的配置文件

sudo echo_supervisord_conf > /etc/supervisord.conf

然后打开配置文件确认下(/etc/supervisord/supervisord.conf),是否有以下配置,没有的话手动添加一下

[include]
files = /etc/supervisor/conf.d/*.conf

第二步开始进行Go项目的编译,-o 指定输出的可执行文件名,GOARCH根据系统是64位还是32位来设置,64位amd64,32位i386,系统环境通过 uname -a 命令可以查看

env GOOS=linux GOARCH=amd64 go build -o myexec main.go lib.go

修改下可执行文件权限

sudo chmod -R 777 myexec

第三步配置项目的supervisor配置文件

sudo vim /etc/supervisor/conf.d/myexec.conf
[program:myexec]
command=/data/golang/myexec
autostart=true
autorestart=true
startsecs=10
stdout_logfile=/var/log/myexec.log
stdout_logfile_maxbytes=1MB
stdout_logfile_backups=10
stdout_capture_maxbytes=1MB
stderr_logfile=/var/log/myexec_err.log
stderr_logfile_maxbytes=1MB
stderr_logfile_backups=10
stderr_capture_maxbytes=1MB

几个配置说明:

program: 项目名称
command:表示运行的命令,填入完整的路径即可。
autostart:表示是否跟随supervisor一起启动。
autorestart:如果该程序挂了,是否重新启动。
stdout_logfile:终端标准输出重定向文件,日志文件最好自己先创建。
stderr_logfile:终端错误输出重定向文件,日志文件最好自己先创建。

创建好以后,我们开始启动

sudo service supervisor start //启动服务
sudo supervisorctl reload

提示:Restarted supervisord
然后我们再查看状态,输入命令,看到myexec运行中。

sudo supervisorctl status
myexec                              RUNNING    pid 6219, uptime 0:00:24

到此,go项目的部署就完成了。

supervisor常用命令:
supervisorctl start programxxx,启动某个进程
supervisorctl restart programxxx,重启某个进程
supervisorctl stop groupworker: ,重启所有属于名为groupworker这个分组的进程(start,restart同理)
supervisorctl stop all,停止全部进程,注:start、restart、stop都不会载入最新的配置文件。
supervisorctl reload,载入最新的配置文件,停止原有进程并按新的配置启动、管理所有进程。
supervisorctl update,根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重启。
supervisor启动和停止的日志文件存放在/var/log/supervisor/supervisord.log
注意:显式用stop停止掉的进程,用reload或者update都不会自动重启

我部署过程中遇到go服务启动不了,可以使用以下命令查看启动过程中的错误信息,myexec你指定的项目名称

sudo supervisorctl tail myexec stdout

centos7 安装 supervisor

$ sudo su - #切换为root用户

# yum install epel-release
# yum install -y supervisor
# systemctl enable supervisord # 开机自启动
# systemctl start supervisord # 启动supervisord服务

# systemctl status supervisord # 查看supervisord服务状态

 

参考:https://www.jianshu.com/p/13ab43e0895b

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值