hotplex-updatelisted
Install: claude install-skill hrygo/hotplex
# HotPlex 更新与服务重启工作流
## 概述
此 skill 提供完整的 HotPlex 二进制更新工作流。它帮助你安全地部署新编译的代码,确保服务正常运行,并在出现问题时提供回滚机制。整个过程通常只需 3-5 秒停机时间。
## 重要:重启指令选择
- **纯重启(不替换二进制)**:必须使用 `hotplex service restart` 原子指令
- **二进制替换场景**:需要手动 `stop → sleep 2 → cp → start`,因为服务管理器需要时间释放文件句柄
## 为什么需要此 Skill
更新运行中的服务二进制看似简单,但有几个常见陷阱:
- **Text file busy 错误**:如果服务还在运行就无法替换二进制文件
- **服务启动失败**:新二进制可能有运行时错误
- **版本混淆**:不确定是否真的部署了新版本
- **无法回滚**:更新失败后没有快速恢复方案
此 skill 通过标准化流程避免这些问题,每次更新都成功。
## 前置条件
- 已安装并配置 `hotplex` CLI
- 已安装 `make` 和 `go` 1.26+
- 已安装服务(`hotplex service install`,支持 user/system 级别)
- 对安装目录(默认 `~/.local/bin/`)的写入权限
## 何时使用此 Skill
**直接触发场景**(直接调用此 skill):
- 你说"更新 hotplex"、"部署新版本"、"重启服务"
- 你说"安装最新构建"、"升级二进制"、"回滚版本"
- 刚执行了 `make build` 需要部署
- 刚执行了 `git pull` 需要更新代码
- 服务升级失败需要恢复
**隐式触发场景**(工作流中自动使用):
- 构建流程的最后一步
- CI/CD 部署阶段
- 版本回滚操作
## 工作流步骤
### 步骤 1:构建新二进制
首先编译最新源代码,这会创建一个包含你最新更改的二进制文件。
```bash
make build
```
**预期输出:**
```
Building...
✓ bin/hotplex-<os>-<arch>
```
**如果构建失败怎么办:**
- 检查编译错误信息并修复代码问题
- 确认 Go 版本是否满足要求(1.26+)
- 检查是否有缺少的依赖项
- 修复后重新运行 `make build`
---
### 步骤 2:验证二进制时间戳
确认刚构建的二进制确实比当前运行的版本新。
```bash
ls -lh ./bin/hotplex-$(go env GOOS)-$(go env GOARCH) ~/.local/bin/hotplex
```
**预期输出:**
- `./bin/hotplex-<os>-<arch>`:最近时间戳(刚刚构建的)
- `~/.local/bin/hotplex`:较旧时间戳(当前运行的版本)
**为什么要验证:**
- 确认构建成功生成了新文件
- 避免意外部署旧版本
- 建立更新前的基线对比
---
### 步骤 3:停止服务
在替换二进制之前需要停止服务,这是因为运行中的进程会锁定二进制文件,导致替换失败。
```bash
hotplex service stop
```
**预期输出:**
```
✓ Stopped service (user)
```
**如果服务未运行:**
- 这很正常,继续到