#!/usr/bin/env bash # 切换 B 步(在 47 上跑):加 systemd drop-in → 重启 dshs(= 切换时刻,约 1-2 秒中断) # · 用 drop-in 而非改 unit:unit 本体 hash 不变 ⇒ 回滚只需删 drop-in # · 同时把 106 的 worker lib 也更新到同一版本(两侧代码必须一致) set -uo pipefail mkdir -p /etc/systemd/system/dshs.service.d cat > /etc/systemd/system/dshs.service.d/cluster.conf </dev/null | tr ' ' '\n' | grep -E "DEPLOY_MODE|CLUSTER_HOST_ID|CLUSTER_AGENT_URL|DB_URL" | sed 's/^/ /' echo " 门户: login.html=$(curl -s -o /dev/null -w '%{http_code}' -m 8 http://127.0.0.1:3080/login.html)" echo " 公网: https://alotbuy.com/login.html = $(curl -s -o /dev/null -w '%{http_code}' -m 12 https://alotbuy.com/login.html)" echo " --- dshs cluster status ---" cd /opt/dshs && set -a && . /etc/dshs.env && set +a && set -a && . /etc/systemd/system/dshs.service.d/cluster.conf 2>/dev/null || true cd /opt/dshs && DSHS_DB_URL="postgres://dshs:dshs_cluster_2026@127.0.0.1:15432/dshs" node lib/cli.js cluster status 2>&1 | head -8 | sed 's/^/ /' echo " --- 回滚命令(随时可用) ---" echo " rm -f /etc/systemd/system/dshs.service.d/cluster.conf && systemctl daemon-reload && systemctl restart dshs"