Files
loan-pricing/doc/implementation-report-2026-04-01-production-one-click-deploy-netstat-fallback.md

33 lines
1.2 KiB
Markdown
Raw Normal View History

2026-04-01 10:47:40 +08:00
# 生产一键部署脚本 netstat 端口检测兼容实施记录
## 问题现象
- 运行 `bin/prod/deploy_from_package.sh` 时出现报错:
- `[2026-04-01 02:45:09] 缺少端口检测命令: ss 或 lsof`
## 根因分析
- 脚本启动后端前会先检查端口检测命令
- 之前的实现只支持 `ss``lsof`
- 用户实际环境中两者都不可用,因此脚本在前置校验阶段直接退出
- 当前仓库开发环境中还存在 `netstat`,说明“只支持 `ss`/`lsof`”不是部署链路本身的要求,而是脚本实现约束过窄
## 修改内容
- 更新 `bin/prod/deploy_from_package.sh`
- 将端口检测命令支持范围从:
- `ss`
- `lsof`
扩展为:
- `ss`
- `lsof`
- `netstat`
- 更新端口检测失败提示文案为“缺少端口检测命令: ss、lsof 或 netstat”
- 更新 `bin/prod/deploy_from_package_test.sh`
- 新增 `netstat` 回退场景自测,验证在 `PATH` 中无 `ss`、无 `lsof`、仅有 `netstat` 时脚本仍可正常完成部署
## 验证结果
- 已执行 `sh -n bin/prod/deploy_from_package.sh`
- 已执行 `sh bin/prod/deploy_from_package_test.sh`
- 自测结果覆盖:
- 正常部署成功
- 多个发布 zip 失败
-`netstat` 可用时,端口监听检测仍然通过