Linux二进制导出配置文件,Go打包二进制文件的实现

背景

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

操作

需求:打包部署到centos7

笔者打包环境:mac os

方法:进入main.go所在目录,输入如下命令,当前目录便会生成main的可执行文件

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

75293ef5cdf98c85f8f7cd972076a90f.png

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打包二进制文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值