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