温馨提示×

centos golang服务怎么启

小樊
46
2026-09-02 19:06:14
栏目: 编程语言

在 CentOS 上启动一个 Golang 服务,常见有几种方式,从最简单生产推荐依次说明。


一、最简单:直接运行(测试用)

1. 编译

go build -o myapp main.go

2. 运行

./myapp

⚠️ 关闭终端就会退出,不适合生产环境


二、后台运行(临时)

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

查看进程:

ps -ef | grep myapp

停止:

kill -9 PID

三、使用 systemd(✅ 推荐,生产环境)

1. 准备服务文件

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

写入内容(示例):

[Unit]
Description=My Golang Service
After=network.target

[Service]
WorkingDirectory=/opt/myapp
ExecStart=/opt/myapp/myapp
User=www
Restart=always
Environment=GO_ENV=production

[Install]
WantedBy=multi-user.target

2. 重载并启动

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

3. 查看状态

systemctl status myapp
journalctl -u myapp -f

四、使用 supervisor(可选)

适合不想用 systemd 的情况。

yum install supervisor -y

配置:

[program:myapp]
command=/opt/myapp/myapp
directory=/opt/myapp
autostart=true
autorestart=true
user=www
stdout_logfile=/var/log/myapp.log

启动:

supervisorctl reload

五、常见问题

端口无法访问

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

权限问题

chmod +x /opt/myapp/myapp

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

  • CentOS 版本(7 / 8 / Stream)
  • Golang 服务类型(Web / 后台任务)
  • 是否用 Docker

我可以给你完全对应的启动方案

0