Golang程序打包成脚本部署到Linux系统方式

Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完成自动化部署。

本地编译Golang程序

本地代码:

//变量的作用域
package main
 
import "fmt"
//单行注释
//包级变量
var packageVar string = "pachage var"
func  main(){
//函数级别的变量
var funVar string = "func var"
fmt.Println(packageVar,funVar)
/*
这是多行注释
以下是使用代码块功能
 */
{
//快级别的变量
var blockVar string = "block var"
fmt.Println(packageVar,";",funVar,";",blockVar)
}
 
fmt.Println("hello world !")
var packageVar string = "pachage2 var"
fmt.Println(packageVar)
//1、变量会在自己块里面找,如果没有就在父块里面找,还没有就去包块找,如果没有就报错 2、子块可以覆盖父块的变量
var zeroString string
fmt.Println(zeroString,"djvnjdfnv")
}

使用goland在Terminal中编译

E:\Gosrc\mage>set GOARCH=amd64
E:\Gosrc\mage>set GOOS=linux
E:\Gosrc\mage>go build 02-helloworld.go

注意

高版本的

go env -w GOOS=linux
go env -w GOOS=windows

此时会生成一个没有后缀的二进制文件

上传Golang二进制文件到Linux服务器

上传Golang二进制文件到Linux服务器,并赋权限

[root@localhost ~]# chmod 755 02-helloworld 

执行此golang开发的脚本

[root@localhost ~]# ./02-helloworld 
pachage var func var
pachage var ; func var ; block var
hello world !
pachage2 var
 djvnjdfnv

如果想让项目在后台执行:执行 nohup ./02-helloworld & ,这样就可以程序在后台运行了

总结

以上Golang程序打包成脚本部署到Linux系统方式为个人经验,希望能给大家一个参考。