# 生产一键部署脚本 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` 可用时,端口监听检测仍然通过