记录一次Go项目的部署
最近写了一个go项目,需要部署到服务器进行测试,如果只是go run main.go
难免也太麻烦了点,于是学习了项目部署的相关知识。
项目的部署有多种方式,Jenkins,nginx等方式,本文只讲解一下简单的shell脚本部署。
系统信息
系统信息: CentOS Linux release 8.3.2011 x86_64
Go version: go version go1.14.12 linux/amd64
几条命令的介绍
nohup
nohup命令的全称为no hang up不挂起,可以在系统后台不挂断的运行命令,退出终端后程序也会正常运行。
语法格式:
nohup ./xxx > xxx.log 2>&1 &
解释:
> xxx.log
表示将输出重定向至该文件,可以记录运行时的日志
2>&1
将标准错误2重定向到标准输出&1,然后标准输出&1再被重定向至xxx.log文件
git pull
git pull origin dev
为了方便项目的及时更新,使用改名了保证运行时与上游仓库的代码保持一致。
ps
ps命令为 process status,可以查看系统当前的进程状态
例如
|
|
我们将用ps命令与grep等命令筛选出项目的pid ps命令有很多参数选择,这里介绍一下用到的两条命令:
|
|
grep
grep命令可以查找文本中符合条件的字符串,用于匹配进程的名称, 还可以匹配文本中的各种信息,本文不再具体展开,后续打算更一篇具体记录Linux命令的博客。
awk
用于处理文本提取信息,将使用grep查询到的进程信息提取出pid
查询到的结果为
root 263948 263946 0 12:49 pts/0 00:00:00 ./OnlineJudge
我们只需要第二项的pid,使用
awk {print $2}
即可提取出进程的pid 263948
kill
kill pid
杀死进程
Shell脚本
|
|
将脚本保存至项目目录,赋予执行权限
chmod +x setup.sh
执行脚本
|
|
至此项目即可部署成功 上述shell中的视个人情况而修改