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

1.2 KiB

生产一键部署脚本 netstat 端口检测兼容实施记录

问题现象

  • 运行 bin/prod/deploy_from_package.sh 时出现报错:
    • [2026-04-01 02:45:09] 缺少端口检测命令: ss 或 lsof

根因分析

  • 脚本启动后端前会先检查端口检测命令
  • 之前的实现只支持 sslsof
  • 用户实际环境中两者都不可用,因此脚本在前置校验阶段直接退出
  • 当前仓库开发环境中还存在 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 可用时,端口监听检测仍然通过