前言
在25年11月,我将飞牛os从0.9.35更新到1.x.x后,发现登不进去了。然后我一直怀疑是飞牛frpc服务未重启,就让家里人手动重启了几次,但都不行。最后也是在寒假第一天晚上修复了,不是frp的问题。
问题现象
- 浏览器访问 Web 界面时卡在登录页
控制台报错:
GET http://192.168.1.9:5666/license/v1/device/baseInfo 502 (Bad Gateway)- SSH 登录后发现
trim_license.service反复崩溃
解决步骤
第一步:确认核心服务状态
# 检查飞牛相关服务
systemctl list-units --type=service | grep trim
# 检查 Nginx(应为 running)
systemctl status nginx
# 检查 PostgreSQL 是否安装
systemctl list-unit-files | grep postgresql预期输出:存在postgresql.service且为enabled,但trim_license为inactive或反复重启。
第二步:检查 PostgreSQL 集群状态
# 查看 PostgreSQL 集群列表
sudo pg_lsclusters示例输出:
Ver Cluster Port Status Owner Data directory Log file 15 main 5432 down postgres /var/lib/postgresql/15/main ...若状态为
down,说明数据库未运行。
第三步:排查 PostgreSQL 启动失败原因
尝试启动集群:
sudo pg_ctlcluster 15 main start若失败,查看详细日志:
sudo journalctl -xeu postgresql@15-main.service --no-pager | tail -n 30关键错误示例:
could not bind IPv4 address "127.0.0.1": Address already in use FATAL: could not create any TCP/IP sockets表明 5432 端口已被占用。
第四步:释放被占用的 5432 端口
1. 查找占用端口的进程
sudo ss -tulnp | grep :5432示例输出:
tcp LISTEN ... 127.0.0.1:5432 ... users:(("postgres",pid=1358,fd=8))
2. 终止残留进程
sudo kill -9 1358 # 替换为实际 PID3. 清理残留 PID 文件
sudo rm -f /var/lib/postgresql/15/main/postmaster.pid
sudo rm -f /run/postgresql/*.pid第五步:启动 PostgreSQL 并验证
# 启动正规集群
sudo pg_ctlcluster 15 main start
# 验证 socket 文件生成
ls /var/run/postgresql/正常输出应包含:
.s.PGSQL.5432 15-main.pid
第六步:启动 License 服务
# 启动授权服务
sudo systemctl start trim_license
# 验证状态
systemctl status trim_license预期状态:Active: active (running)第七步:设置开机自启(防止重启后复现)
# 启用 PostgreSQL 集群自启
sudo systemctl enable postgresql@15-main
# 确保 license 服务自启(通常已启用)
sudo systemctl enable trim_license验证与总结
- 输入账号密码,登录成功
适用场景:飞牛OS系统更新后,Web 管理界面无法登录,提示502 Bad Gateway或“系统内部错误”,且浏览器开发者工具中可见/license/v1/device/baseInfo请求失败。
根本原因:trim_license服务依赖 PostgreSQL 数据库,但更新后 PostgreSQL 未正常运行或端口被残留进程占用,导致授权服务启动失败。
附:完整修复命令汇总(可一键复制执行)
# 1. 查看并终止占用 5432 的进程
sudo ss -tulnp | grep :5432
sudo kill -9 1358 # 替换为实际 PID
# 2. 清理残留文件
sudo rm -f /var/lib/postgresql/15/main/postmaster.pid
sudo rm -f /run/postgresql/*.pid
# 3. 启动 PostgreSQL 集群
sudo pg_ctlcluster 15 main start
# 4. 验证 socket
ls /var/run/postgresql/
# 5. 启动 license 服务
sudo systemctl start trim_license
# 6. 设置开机自启
sudo systemctl enable postgresql@15-main
sudo systemctl enable trim_license
# 7. 检查状态
systemctl status trim_license








