如何优雅的把Go项目部署到Linux服务器?
2023-06-13 09:14:00 时间
注意问题
- go项目运行之后,修改.env文件不会立即生效,需要重启go服务才会生效
- go项目运行之后,修改config.ini配置文件会立即生效,无需重启go服务
重新部署项目
- 开发环境重新build项目(Mac环境的打包语法)
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build
- 查找指定端口的进程 博主的端口号9001
netstat -tunlp|grep 9001
注意:生产环境 ‘kill -9’ 太暴力,可能导致问题:进程在运行时突然终止,进程在结束后不能自我清理。
所以生产环境建议大家使用:
kill 命令,而不是kill -9 命令
kill命令默认的信号就是15,也就是 kill -15 ,被称为优雅的退出。当使用kill -15时,系统会发送一个SIGTERM的信号给对应的程序。当程序接收到该信号后,具体要如何处理是自己可以决定的。
kill 进程号 && nohup ./二进制文件名 > nohup.log 2>&1 &
- 使用&&同时执行2条命令,避免服务中断
开发环境
我们在开发环境如果要马上看到效果,并且不用考虑进程中断的问题,可以使用kill -9强制结束进程,
示例
kill -9 4543 && nohup ./singo > nohup.log 2>&1 &
- 4543是要结束的进程pid
- singo是二进制文件名
- 使用&&同时执行2条命令,避免服务中断
附录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
相关文章
- 掌控Linux服务器:利用其最佳应用(linux服务器应用)
- 管理Linux远程管理数据库:把你的服务器数据库掌握在手中(linux远程数据库)
- 新一代 Linux 点播服务器,满足您所有需求(linux点播服务器)
- 手把手教你操作Linux服务器管理系统(linux服务器管理系统)
- 搭建Linux服务器:最佳实践指南(怎么搭建linux服务器)
- Linux虚拟机:让跨语言运行成为可能(linux虚拟机语言)
- 信息深入Linux:查看本地磁盘信息(linux查看本地磁盘)
- Linux 越权安装问题:游走于授权空间之间(linux安装权限不够)
- Linux上精简安装LZMA(linux安装lzma)
- 知识Linux 最新热点知识大汇总(linux热点)
- Linux系统的多元分支之旅(linux的分支)
- C调用Linux命令:迅速实现命令行操作(c调用linux命令)
- Linux上轻松安装SVN:简单易懂教程(在linux下安装svn)
- 建立基于Linux的服务器集群系统(linux服务器集群系统)
- 如何在Linux系统下检查硬盘坏道(linux检查硬盘坏道)
- Linux服务器实现域名解析的深度配置(linux域名解析配置)
- 云锁发布 Linux 版本,提高云服务器安全性(云锁linux版)
- “Linux掌控全局:一款高效的服务器连接软件”(linux服务器连接软件)
- “深入探究Linux服务器镜像文件的一些技巧”(linux服务器镜像文件)
- Linux下的智能指针应用研究(linux智能指针)