背景

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

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

  1. 简单的将linux二进制程序、资源打包成rpm

    需求 之前发布.实施软件或者产品的时候,更多的是以脚本+tar压缩包的形式,或者直接集成一个ELF程序来进行发布. 现在想简单的把可执行程序.依赖动态度和资源打到一个rpm包中,通过rpm -ivh方 ...

  2. Linux 系统的配置文件

    本文说明了 Linux 系统的配置文件,在多用户.多任务环境中,配置文件控制用户权限.系统应用程序.守护进程.服务和其它管理任务.这些任务包括管理用户帐号.分配磁盘配 额.管理电子邮件和新闻组,以及配 ...

  3. mysql5.7.1.9二进制安装_mysql 5.7.9 linux二进制安装

    mysql 5.7.9 linux二进制安装 环境 CentOS 5.6 X86_64 下载 下载通用Linux二进制包 wget http://dev.mysql.com/get/Downloads ...

  4. 云服务器dns配置文件,linux服务器dns配置文件

    linux服务器dns配置文件 内容精选 换一换 裸金属服务器硬件损坏,SDI卡损坏等原因,导致裸金属服务器无法正常使用时,您可以申请裸金属服务器重建功能.裸金属服务器重建过程不是自动化的,您需要联系 ...

  5. Linux 中 3 个文件打包上传和下载相关命令详解

    tar 命令 通过 SSH 访问服务器,难免会要用到压缩,解压缩,打包,解包等,这时候tar 命令就是必不可少的一个功能强大的工具.Linux 中最流行的tar是麻雀虽小,五脏俱全,功能强大. 使用t ...

  6. linux下用户配置文件与系统配置文件

    linux下用户配置文件与系统配置文件 linux下用户配置文件目录在用户的目录下 以我的ubuntu为例,我的用户配置文件所在目录为:/home/liyuanhong 使用命令:ls  -A   来 ...

  7. 【sprinb-boot】配置文件分离打包

    前言 springboot 2.0.0.RELEASE maven 3.5.0 使用maven命令mvn package打包spring boot项目时,将配置文件分离出来. pom.xml配置 &l ...

  8. Linux的一些配置文件位置

    Linux的一些配置文件位置 一些配置文件位置 1:/etc/sysconfig/i18n(语言配置文件).2:/etc/sysconfig/network-scripts/ifcfg-eth0(et ...

  9. Ubuntu Linux系统环境变量配置文件

    Ubuntu Linux系统环境变量配置文件: /etc/profile : 在登录时,操作系统定制用户环境时使用的第一个文件 ,此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行. ...

最新文章

  1. g-gdb调试core文件
  2. 计算机cad论文参考文献,Auto CAD在计算机绘制矿图中的应用探索
  3. Jupyter不要自动启动浏览器(Firefox)
  4. visual studio输入法打不了中文_目前比较满意的手机输入法方案:Gboard + 搜狗词库...
  5. 设计模式--策略(Strategy)模式
  6. [architecture]-DMB、DSB 和 ISB指令的深度解读
  7. a标签用ajax请求传参,Django中如何实现传参的Ajax请求
  8. jupyter 接受参数
  9. pythonscrapy爬虫_零基础写python爬虫之使用Scrapy框架编写爬虫
  10. Windows命令行下的进程管理
  11. 在Java EE 6中将Bean验证与JAX-RS集成
  12. js的navigator对象的使用(浏览器信息)
  13. HTTP之Cookie和Session(C++ Qt框架实现)
  14. windows下SVN日志反馈中文乱码的解决方法
  15. 手把手教你学51单片机_第四、五章
  16. JOHNSON算法:流水作业最优调度问题
  17. Win10自更改鼠标指针重启后恢复默认解决方法_windows10 每一次开机都把鼠标指针还原成系统默认的指针
  18. 2016 年度开源中国新增开源软件排行榜 TOP 100
  19. fir300c固件_斐讯路由器漏洞集合(内置账号及隐藏接口)
  20. 一分钟明白 VS manifest 原理

热门文章

  1. 2、安装Lync Server 2013
  2. ArcGIS水文分析实战教程(9)雨量计算与流量统计
  3. 前端碎碎念 之 nextTick, setTimeout 以及 setImmediate 三者的执行顺序
  4. C++vector迭代器失效的问题
  5. ORA-01109:数据库未打开(解决)
  6. 概率图论PGM的D-Separation(D分离)
  7. nginx特定的 404页面利于seo
  8. Pretty Login便携版:Windows 7登录界面修改器
  9. 软件包管理 之 软件在线升级更新yum 图形工具介绍
  10. 三大软件公司争霸赛区块链