Skip to content

Commit c38b384

Browse files
committed
fix(service): 控制接口未就绪不再中止启动,改为降级告警继续
此前 api_wait_available 超时或模式/节点同步失败会直接 die,导致核心明已启动却整体启动失败、透明代理也不加载。改为尽力而为: - 控制接口等待超时仅记 WARN 并跳过同步(核心已在运行,继续加载透明代理) - 模式/节点同步失败仅 WARN,沿用配置默认值,不中止启动 - 等待超时从 60s 收紧为 30s
1 parent 07f5a91 commit c38b384

1 file changed

Lines changed: 11 additions & 6 deletions

File tree

src/module/scripts/core/service.sh

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -153,12 +153,17 @@ EOF
153153
die "sing-box 启动失败,请检查日志: $SINGBOX_LOG_FILE"
154154
fi
155155

156-
# 等待控制接口就绪后同步运行模式 (内部同步步骤静默)
157-
api_wait_available 60 1 || die "控制接口不可用,启动失败"
158-
LOG_STDERR=0 LOG_LEVEL=WARN SWITCH_ALLOW_RESTART=0 sh "$SWITCH_SCRIPT" mode "$CUR_OUTBOUND_MODE" || die "运行模式同步失败,启动中止"
159-
# 手动选择模式下额外同步当前节点
160-
if is_manual_selector "$CUR_SELECTOR_MODE"; then
161-
LOG_STDERR=0 LOG_LEVEL=WARN SWITCH_ALLOW_RESTART=0 sh "$SWITCH_SCRIPT" config "$CUR_OUTBOUND_CONFIG" || die "节点配置同步失败,启动中止"
156+
# 等待控制接口就绪后同步运行模式与节点 (尽力而为:失败仅告警,不中止启动)
157+
if api_wait_available 30 1; then
158+
LOG_STDERR=0 LOG_LEVEL=WARN SWITCH_ALLOW_RESTART=0 sh "$SWITCH_SCRIPT" mode "$CUR_OUTBOUND_MODE" \
159+
|| log "WARN" "运行模式同步失败,将沿用配置默认模式"
160+
# 手动选择模式下额外同步当前节点
161+
if is_manual_selector "$CUR_SELECTOR_MODE"; then
162+
LOG_STDERR=0 LOG_LEVEL=WARN SWITCH_ALLOW_RESTART=0 sh "$SWITCH_SCRIPT" config "$CUR_OUTBOUND_CONFIG" \
163+
|| log "WARN" "节点配置同步失败,将沿用配置默认节点"
164+
fi
165+
else
166+
log "WARN" "控制接口在超时时间内未就绪,跳过模式/节点同步"
162167
fi
163168

164169
# 非跳过模式下加载透明代理规则

0 commit comments

Comments
 (0)