在 Debian 下启动(运行)Golang 程序,一般有以下几种常见方式,从“最简单”到“作为服务运行”都给你说明。
cd /path/to/your/project
go run main.go
如果是多个文件:
go run .
go build -o myapp main.go
./myapp
编译成无调试信息的更小二进制(可选):
go build -ldflags="-s -w" -o myapp
&./myapp &
查看进程:
ps aux | grep myapp
退出终端后可能停止,不推荐长期使用。
nohupnohup ./myapp > app.log 2>&1 &
go build -o /opt/myapp/myapp
sudo vim /etc/systemd/system/myapp.service
示例内容:
[Unit]
Description=My Go App
After=network.target
[Service]
ExecStart=/opt/myapp/myapp
WorkingDirectory=/opt/myapp
User=www-data
Restart=always
Environment=GO_ENV=production
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reexec
sudo systemctl enable myapp
sudo systemctl start myapp
systemctl status myapp
journalctl -u myapp -f
sudo apt update
sudo apt install golang-go
go version
wget https://go.dev/dl/go1.22.5.linux-amd64.tar.gz
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf go1.22.5.linux-amd64.tar.gz
加到 PATH:
echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bashrc
source ~/.bashrc
| 场景 | 推荐方式 |
|---|---|
| 开发调试 | go run |
| 临时运行 | nohup ./app & |
| 生产环境 | systemd 服务 |
| 多服务管理 | systemd + nginx |
如果你愿意,可以告诉我:
我可以直接给你一份完整配置。