feat: refactor to ymsctl & yms-daemon
This commit is contained in:
@@ -38,7 +38,7 @@ RPM 不会自动启动或重启 `yms-daemon.service`,避免安装恰好发生
|
||||
systemctl restart yms-daemon.service
|
||||
```
|
||||
|
||||
`/etc/yms-daemon/yms-daemon.toml` 使用 `noreplace` 语义,升级不会覆盖现场配置。RPM 会安装 `/usr/bin/yms-daemon`、两个 systemd unit、tmpfiles 配置,并创建 `/home/yms/dump`。
|
||||
`/etc/yms-daemon/yms-daemon.toml` 使用 `noreplace` 语义,升级不会覆盖现场配置。RPM 会安装 `/usr/bin/ymsd` 和 `/usr/bin/ymsctl`、两个 systemd unit、tmpfiles 配置,并创建 `/home/yms/dump`。
|
||||
|
||||
RPM 示例配置使用客户环境值:
|
||||
|
||||
@@ -69,7 +69,8 @@ CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -trimpath -o yms-daemon .
|
||||
把构建结果和 `packaging` 目录传到服务器后,以 root 执行:
|
||||
|
||||
```bash
|
||||
install -m 0755 yms-daemon /usr/bin/yms-daemon
|
||||
install -m 0755 ymsd /usr/bin/ymsd
|
||||
install -m 0755 ymsctl /usr/bin/ymsctl
|
||||
install -d -m 0755 /etc/yms-daemon
|
||||
install -m 0640 packaging/etc/yms-daemon/yms-daemon.toml /etc/yms-daemon/yms-daemon.toml
|
||||
install -m 0644 packaging/systemd/yms-daemon.service /etc/systemd/system/yms-daemon.service
|
||||
@@ -95,7 +96,7 @@ curl -fsS http://127.0.0.1:8081/yms/actuator/health
|
||||
客户 repack ZIP 模式:
|
||||
|
||||
```bash
|
||||
yms-daemon update --service backend -f /home/yms/tmp/<完整包名>.zip
|
||||
ymsctl update --service backend -f /home/yms/tmp/<完整包名>.zip
|
||||
```
|
||||
|
||||
ZIP 根目录必须包含:
|
||||
@@ -116,7 +117,7 @@ selectedType = native
|
||||
开发环境不需要打 ZIP。Jenkins 或交付人员先把完整 JAR 复制到 `/home/yms/tmp`,再执行:
|
||||
|
||||
```bash
|
||||
yms-daemon update --service backend --native-jar /home/yms/tmp/<完整JAR文件名>.jar
|
||||
ymsctl update --service backend --native-jar /home/yms/tmp/<完整JAR文件名>.jar
|
||||
```
|
||||
|
||||
`-f` 与 `--native-jar` 必须且只能提供一个。daemon 不根据文件扩展名选择更新模式。直传 JAR 会被完整校验并计算 SHA-256,然后保存到:
|
||||
@@ -147,7 +148,7 @@ transaction=<事务ID> state=COMMITTED
|
||||
Jenkins 只需要退出码、不需要过程和成功结果时,使用精确参数 `--quite`:
|
||||
|
||||
```bash
|
||||
yms-daemon update --service backend --native-jar /home/yms/tmp/<完整JAR文件名>.jar --quite
|
||||
ymsctl update --service backend --native-jar /home/yms/tmp/<完整JAR文件名>.jar --quite
|
||||
```
|
||||
|
||||
`--quite` 不写正常过程和成功结果;失败信息仍写入 stderr,并返回非零退出码。
|
||||
@@ -169,7 +170,7 @@ journalctl -u yms-daemon.service -f
|
||||
修改 `/home/yms/bin/env/yms.env` 等 backend 启动配置后,执行:
|
||||
|
||||
```bash
|
||||
yms-daemon restart --service backend
|
||||
ymsctl restart --service backend
|
||||
```
|
||||
|
||||
daemon 读取 `/home/yms/lib/glory-soft-yms.jar` 当前指向的精确 release,创建独立 restart 事务,将同一 JAR 绑定到非活动槽位,启动并完成 Actuator 健康检查后切流,等待 drain,再停止旧槽。当前 JAR 已经位于 release 目录时直接复用;兼容入口仍是普通文件时,先按内容身份导入 release 目录。restart 不重新上传 JAR,也不以历史 update 的内容幂等键阻止本次轮转。
|
||||
@@ -177,7 +178,7 @@ daemon 读取 `/home/yms/lib/glory-soft-yms.jar` 当前指向的精确 release
|
||||
静默执行:
|
||||
|
||||
```bash
|
||||
yms-daemon restart --service backend --quite
|
||||
ymsctl restart --service backend --quite
|
||||
```
|
||||
|
||||
restart 进行中如果 daemon 重启,再次执行同一命令会恢复唯一未完成的 backend restart 事务。存在其他未完成 update 事务时,restart 拒绝创建新事务并返回该活动事务 ID。
|
||||
|
||||
Reference in New Issue
Block a user