温馨提示×

centos上golang如何启动

小樊
43
2026-09-14 22:45:47
栏目: 编程语言

CentOS 上启动(运行)一个 Go (Golang) 程序,一般有几种常见方式,下面从“最基础”到“生产环境”逐步说明。


一、前提:已安装 Go

先确认是否安装:

go version

如果没有安装:

# 以 Go 1.21 为例
wget https://go.dev/dl/go1.21.5.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.21.5.linux-amd64.tar.gz

# 配置环境变量
echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bashrc
source ~/.bashrc

二、方式一:直接运行 Go 程序(开发/测试)

1️⃣ 有源码(go run)

cd /path/to/project
go run main.go

适合:调试、开发


2️⃣ 编译后运行(推荐)

go build -o myapp main.go
./myapp

后台运行:

nohup ./myapp > app.log 2>&1 &

查看进程:

ps aux | grep myapp

三、方式二:作为系统服务(生产推荐 ✅)

使用 systemd(CentOS 7+)

1️⃣ 编译程序

go build -o /opt/myapp/myapp main.go

2️⃣ 创建 service 文件

sudo vi /etc/systemd/system/myapp.service

内容示例:

[Unit]
Description=My Go App
After=network.target

[Service]
ExecStart=/opt/myapp/myapp
WorkingDirectory=/opt/myapp
User=root
Restart=always

[Install]
WantedBy=multi-user.target

3️⃣ 启动服务

sudo systemctl daemon-reload
sudo systemctl start myapp
sudo systemctl enable myapp

4️⃣ 常用命令

systemctl status myapp
journalctl -u myapp -f

四、方式三:使用 supervisor(可选)

适合不想用 systemd 的场景。

yum install supervisor -y

配置 /etc/supervisord.d/myapp.ini

[program:myapp]
command=/opt/myapp/myapp
directory=/opt/myapp
autostart=true
autorestart=true
stdout_logfile=/var/log/myapp.log
systemctl restart supervisord

五、常见注意事项

✅ 确保端口未被占用
✅ 防火墙放行(如 8080)

firewall-cmd --add-port=8080/tcp --permanent
firewall-cmd --reload

✅ 生产环境不要用 go run


如果你愿意,可以告诉我:

  • CentOS 版本(6 / 7 / 8 / Stream)
  • Go 程序类型(Web / 后台任务 / 微服务)
  • 是否需要开机自启

我可以给你一份完全匹配你场景的启动方案

0