在 Debian 上跑 Go 程序时“日志报错”是一个比较宽泛的说法。要给你准确可行的解决办法,最好能把具体的报错内容贴出来(比如 panic:、error:、系统日志里的信息)。不过我可以先给你一套常见排查思路 + 典型问题对照表,你基本能解决 80% 的情况。
在 Debian 上,Go 程序日志通常来自这几处:
./yourProgram 2>&1 | tee log.txt
journalctl -u your-service -f
docker logs -f container_name
tail -f /var/log/your-app.log
panic: runtime error典型原因
✅ 解决:
journalctl -u your-service -n 200 --no-pager
看 panic 堆栈,定位到 .go 文件和行号。
permission denied常见场景
✅ 解决:
ls -l /var/log/your-app.log
sudo chown -R youruser:youruser /var/log/your-app
端口问题:
sudo setcap cap_net_bind_service=+ep your_binary
no such file or directory常见于
✅ 解决:
WorkingDirectory=[Service]
WorkingDirectory=/opt/yourapp
cannot find package / module not found原因
✅ 解决:
go version
sudo apt remove golang
# 安装官方版本
wget https://go.dev/dl/go1.22.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.22.linux-amd64.tar.gz
sudo systemctl status your-service
journalctl -xe
✅ 常见错误:
ExecStart 路径错Type=simple1. 看日志
journalctl -u xxx -n 200
2. 手动跑
cd /opt/yourapp
./yourapp
3. 看权限
ls -l
whoami
4. 看依赖
ldd yourapp
go env
你可以直接贴出:
cat /etc/os-release)go version)我可以一步步帮你定位到具体哪一行代码或配置。