在 CentOS 上运行 Golang(Go)程序一般有几种常见方式,下面从安装 Go → 编译 → 运行 → 后台运行一步步说明。
# 下载(以 1.22 为例,可换成最新版本)
wget https://go.dev/dl/go1.22.2.linux-amd64.tar.gz
# 解压到 /usr/local
sudo tar -C /usr/local -xzf go1.22.2.linux-amd64.tar.gz
# 配置环境变量
echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bashrc
source ~/.bashrc
# 验证
go version
sudo yum install golang -y
go version
mkdir ~/goapp && cd ~/goapp
vim main.go
main.go 示例:
package main
import "fmt"
func main() {
fmt.Println("Hello CentOS")
}
go run main.go
go build -o myapp main.go
运行:
./myapp
✅ 编译后的程序不依赖 Go 环境,可直接拷贝到其他 CentOS 服务器运行
nohup ./myapp > app.log 2>&1 &
查看日志:
tail -f app.log
创建服务文件:
sudo vim /etc/systemd/system/myapp.service
内容示例:
[Unit]
Description=My Go App
After=network.target
[Service]
ExecStart=/root/goapp/myapp
WorkingDirectory=/root/goapp
Restart=always
User=root
[Install]
WantedBy=multi-user.target
启动:
sudo systemctl daemon-reload
sudo systemctl start myapp
sudo systemctl enable myapp
查看状态:
systemctl status myapp
go mod init myapp
go mod tidy
CGO_ENABLED=0 GOOS=linux go build -a -o myapp main.go
sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --reload
如果你有具体场景(比如 Web 服务 / 定时任务 / Docker / CentOS 7 or 8),我可以给你更精确的方案。