refactor(core): 手工融合 Systemd 引擎与 Root 权限校验 (提取自 PR #25),修复 Cgroup 误杀与交互逻辑陷阱,构建灰度测试候选版

This commit is contained in:
hotyue
2026-04-21 02:00:10 +00:00
parent aeed9f0e57
commit 34320b2385
8 changed files with 282 additions and 75 deletions
+10 -4
View File
@@ -10,9 +10,9 @@ CONF="/opt/ip_sentinel_master/master.conf"
source "$CONF"
# [核心: 运行态版本继承与云通信地址]
REPO_RAW_URL="https://raw.githubusercontent.com/hotyue/IP-Sentinel/main"
# REPO_RAW_URL="https://raw.githubusercontent.com/hotyue/IP-Sentinel/main"
# 临时改为开发地址用于测试
# REPO_RAW_URL="https://raw.githubusercontent.com/hotyue/IP-Sentinel/dev-v3.6.1"
REPO_RAW_URL="https://raw.githubusercontent.com/hotyue/IP-Sentinel/v3.6.2-rc"
# MASTER_VERSION 已经在上方的 source "$CONF" 中被载入
# 如果本地极度陈旧没有该变量,才给定一个基础兜底值,避免变量为空导致崩溃
MASTER_VERSION=${MASTER_VERSION:-"3.5.0"}
@@ -261,13 +261,19 @@ while true; do
fi
# 下载最新的 master install 脚本作为幽灵进程
curl -sL "${REPO_RAW_URL}/master/install_master.sh" -o "/tmp/install_master.sh"
curl -fsSL "${REPO_RAW_URL}/master/install_master.sh" -o "/tmp/install_master.sh"
chmod +x "/tmp/install_master.sh"
# 抛出幽灵进程进行脱壳升级,传递静默变量与回执 ID
export SILENT_MASTER_OTA="true"
export OTA_CHAT_ID="$CHAT_ID"
nohup bash /tmp/install_master.sh >/dev/null 2>&1 & disown
# [修复] 逃逸 Systemd Cgroup,防止被同归于尽机制误杀
if command -v systemd-run >/dev/null 2>&1; then
systemd-run --quiet --no-block /bin/bash /tmp/install_master.sh
else
nohup bash /tmp/install_master.sh >/dev/null 2>&1 & disown
fi
# 当前旧进程休眠并等待被幽灵进程处决
sleep 10