likes
comments
collection
share

Go打包 部署 优雅的把Go项目部署到Linux服务器

作者站长头像
站长
· 阅读数 21

注意问题

  1. go项目运行之后,修改.env文件不会立即生效,需要重启go服务才会生效
  2. go项目运行之后,修改config.ini配置文件会立即生效,无需重启go服务

重新部署项目

  • 开发环境重新build项目(Mac环境的打包语法)
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build
  • 查找指定端口的进程 博主的端口号9001
netstat -tunlp|grep 9001

注意:感谢掘友的评论,生产环境 ‘kill -9’ 太暴力,可能导致问题:进程在运行时突然终止,进程在结束后不能自我清理。

所以生产环境建议大家使用:

  • 4543是要结束的进程pid
  • singo是二进制文件名
  • 使用&&同时执行2条命令,避免服务中断
kill 4543 && nohup ./singo > nohup.log 2>&1 &

开发环境强制结束进程,可以使用 kill -9 :

  • 4543是要结束的进程pid
  • singo是二进制文件名
  • 使用&&同时执行2条命令,避免服务中断
kill -9 4543 && nohup ./singo > nohup.log 2>&1 &

附录Windows平台的打包语法

windows

set CGO_ENABLED=0 //禁用CGO
set GOOS=linux //目标平台为linux
set GOARCH=amd64 //目标处理器架构是amd64
go build -o name //编译可执行文件到当前目录 (-o:自定义文件名)

Mac

CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build
转载自:https://juejin.cn/post/6954309251892248612
评论
请登录