30 lines
1.2 KiB
Markdown
30 lines
1.2 KiB
Markdown
# 生产一键部署脚本改用 ps -ef 识别进程实施记录
|
|
|
|
## 修改内容
|
|
- 更新 `bin/prod/deploy_from_package.sh`
|
|
- 将后端进程识别与收集方式从 `pgrep` 改为 `ps -ef`
|
|
- 删除脚本对 `pgrep` 命令的前置依赖
|
|
- 更新 `bin/prod/deploy_from_package_test.sh`
|
|
- 新增断言,要求脚本不能再依赖 `pgrep`,并必须包含 `ps -ef` 进程识别逻辑
|
|
|
|
## 调整原因
|
|
- 用户要求使用 `ps -ef` 判断进程
|
|
- 旧实现依赖 `pgrep -f` 收集托管进程,不符合当前要求
|
|
|
|
## 实现说明
|
|
- `is_managed_backend_pid` 现在通过 `ps -ef | awk` 按 PID 读取目标进程行
|
|
- `collect_backend_pids` 现在通过 `ps -ef | awk` 同时匹配:
|
|
- `-Dloan.pricing.home=<脚本目录>`
|
|
- `backend/ruoyi-admin.jar`
|
|
- 只有同时满足托管标记和目标 jar 路径的进程才会被纳入停止范围
|
|
|
|
## 验证结果
|
|
- 已执行 `sh -n bin/prod/deploy_from_package.sh`
|
|
- 已执行 `sh bin/prod/deploy_from_package_test.sh`
|
|
- 自测结果确认:
|
|
- 脚本中已不存在 `pgrep`
|
|
- 脚本中已使用 `ps -ef`
|
|
- 正常部署链路仍然通过
|
|
- 多个发布 zip 失败场景仍然通过
|
|
- `netstat` 端口检测回退场景仍然通过
|