您现在的位置是:首页 >趣味人生 > Golang打包go项目部署到linux服务器正确方法网站首页趣味人生

Golang打包go项目部署到linux服务器正确方法

admin网络2023-11-13 17:41:22151人围观
简介

一般网上查到的方法大多都是让终端中输入以下代码:

set CGO_ENABLED=0
set GOOS=linux
set GOARCH=amd64
go build -o main-linux main.go

然后就会生成main-linux的二进制可执行文件,然后将main-linux放到服务器中的任一目录中,然后就可以执行以下命令运行:

> chmod 777 main-linux
> ./main-linux

但实际上,通过以上方法,往往发现运行不了,这是为什么呢?

我们输入以下命令查看就知道了:

go env

通过该命令,我们可以看到:

set GOOS=windows

并没有像我们上面设置那样变成linux,GOOS依然是windows,所以在linux运行windows的执行文件,自然无法正常执行,所以这时我们需要用如下命令来解决:

$env:GOOS="linux"
go build -o main-linux main.go

如果我们要变成服务来运行,那么需要使用命令:

vi /etc/systemd/system/main-linux.service

然后该文件内容中写入以下内容:

[Unit]
Description=aoyou
After=network.target

[Service]
WorkingDirectory=/www/aoyou
ExecStart=/www/aoyou/main
PrivateTmp=true

[Install]  
WantedBy=multi-user.target

然后按Esc退出编辑模式,再输入以下命令保存退出:

:wq

然后使用如下命令重装服务配置:

systemctl daemon-reload

还可以使用如下其他命令做其他操作:



启动服务:`systemctl start <服务名>.service`

停止服务:`systemctl stop <服务名>.service`

重启服务:`systemctl restart <服务名>.service`

查看服务状态:`systemctl status <服务名>.service`

开机启动服务:`systemctl enable <服务名>.service`

禁止开机启动:`systemctl disable <服务名>.service`

某服务是否正运行:`ps -ef | grep <服务名>`



上一篇:已无上一篇

下一篇:已无下一篇

文章评论