主页 > 知识库 > Go打包二进制文件的实现

Go打包二进制文件的实现

热门标签:地方门户网站 AI电销 百度竞价排名 铁路电话系统 呼叫中心市场需求 服务外包 网站排名优化 Linux服务器

背景

众所周知,go语言可打包成目标平台二进制文件是其一大优势,如此go项目在服务器不需要配置go环境和依赖就可跑起来。

操作

需求:打包部署到centos7
笔者打包环境:mac os
方法:进入main.go所在目录,输入如下命令,当前目录便会生成main的可执行文件

CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go

Windows平台打包到Linux执行不一样,需要输入如下命令

set CGO_ENABLED=0
set GOOS=linux
set GOARCH=amd64
go build
  • CGO_ENABLED 表示不使用cgo
  • GOOS 表示目标平台系统(Windows,linux,darwin「mac os」等等)
  • GOARCH 表示目标系统架构(arm arm64 386 amd64 等等)

打包完成后,将二进制文件放到服务器系统,赋可执行权限:

chmod 773 main

直接运行即可:

./main

或后台执行:

nohup ./main 1>info.log 2>1 

linux 后台运行程序

一般为了程序后台运行,我们需要使用nohup命令.
此时需要对程序运行时所产生的输出信息记录,因此就需要使用linux的信息输出命令

一个例子

比如要让redis-server程序后台运行
1.非后台运行:

$> ./redis-server

2.后台运行:

$> nohup ./redis-server 1>/dev/null 2>1 
  • 其中数字1代表标准输出,2代表错误信息输出,还有未使用的标准输入即数字0.
  • 1>/dev/null 2>1 的意思是标准信息输出到空设备即不做任何处理,也不做任何显示,/dev/null也可以替换为文本文件名(如 out.log),此时标准信息就会输出到指定文件.
  • 2>1表示错误信息输出到标准输出,即输出同1>后面的位置,当然也可以直接指定新文件名(如 err.log).
  • 最后的 表示程序后台运行

上面的命令还可简写:

nohup ./redis-server >/dev/null 2>1 

即去掉标准输出数字1

后台运行一个程序

1.先用 netstat -tln 查看端口信息
2.isof -i:端口 可以找到程序进程号PID
3.kill PID 可以关闭程序

如此便是go打包到linux平台的完整操作,欢迎大家指证。

到此这篇关于Go打包二进制文件的实现的文章就介绍到这了,更多相关Go打包二进制文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

您可能感兴趣的文章:
  • 如何使用Jenkins编译并打包SpringCloud微服务目录
  • 详解React项目如何修改打包地址(编译输出文件地址)
  • vue编译打包本地查看index文件的方法
  • Android应用程序(APK)的编译打包过程
  • Gradle编译打包Android apk详细介绍
  • Android开发apk反编译和二次打包教程
  • Android笔记之:App自动化之使用Ant编译项目多渠道打包的使用详解

标签:仙桃 湘潭 黄山 衡水 兰州 铜川 湖南 崇左

巨人网络通讯声明:本文标题《Go打包二进制文件的实现》,本文关键词  ;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 收缩
    • 微信客服
    • 微信二维码
    • 电话咨询

    • 400-1100-266