改进 frpc 启动:sleep 2s、输出失败日志尾部、配置完整性预检

- sleep 1 -> 2s 给 frpc 更多启动时间
- 启动失败时 tail -5 输出 frpc 日志方便排查
- 增加配置基本校验(检查 serverAddr 和代理端口是否存在)
- warn -> error 级别提升
This commit is contained in:
2026-07-02 15:21:23 +08:00
parent f297b7adf4
commit c0bc5190d6
+23 -14
View File
@@ -727,22 +727,31 @@ safe_start_service "huawei-gateway" "$PYTHON_CMD /usr/local/bin/huawei_gateway.p
# ================= 启动 frpc ================= # ================= 启动 frpc =================
if [ -n "$FRPC_CONFIG" ] && [ -f "$FRPC_CONFIG" ]; then if [ -n "$FRPC_CONFIG" ] && [ -f "$FRPC_CONFIG" ]; then
if command -v frpc &>/dev/null; then if command -v frpc &>/dev/null; then
# 重启已运行的 frpc,或首次启动 # 校验配置基本完整性
if has_systemd; then if ! grep -q "serverAddr" "$FRPC_CONFIG" 2>/dev/null || ! grep -q "remotePort\|remote_port" "$FRPC_CONFIG" 2>/dev/null; then
if systemctl list-units --type=service 2>/dev/null | grep -q "frpc"; then log_error "frpc 配置文件不完整: $FRPC_CONFIG"
systemctl restart frpc 2>/dev/null && log_info "frpc 服务已重启" log_error "请检查配置后手动启动: frpc -c $FRPC_CONFIG"
else
systemctl enable frpc --now 2>/dev/null && log_info "frpc 服务已通过 systemd 启动"
fi
else else
restart_service "frpc" # 重启已运行的 frpc,或首次启动
nohup frpc -c "$FRPC_CONFIG" > /var/log/frpc.log 2>&1 & if has_systemd; then
echo $! > /var/run/frpc.pid if systemctl list-units --type=service 2>/dev/null | grep -q "frpc"; then
sleep 1 systemctl restart frpc 2>/dev/null && log_info "frpc 服务已重启"
if kill -0 "$(cat /var/run/frpc.pid)" 2>/dev/null; then else
log_info "frpc 已通过 nohup 启动 (PID: $(cat /var/run/frpc.pid))" systemctl enable frpc --now 2>/dev/null && log_info "frpc 服务已通过 systemd 启动"
fi
else else
log_warn "frpc 启动失败,查看日志: /var/log/frpc.log" restart_service "frpc"
nohup frpc -c "$FRPC_CONFIG" > /var/log/frpc.log 2>&1 &
echo $! > /var/run/frpc.pid
sleep 2
if kill -0 "$(cat /var/run/frpc.pid)" 2>/dev/null; then
log_info "frpc 已通过 nohup 启动 (PID: $(cat /var/run/frpc.pid))"
else
log_error "frpc 启动失败!最后几行日志:"
tail -5 /var/log/frpc.log | while IFS= read -r line; do
echo -e " ${RED}|${PLAIN} $line"
done
fi
fi fi
fi fi
else else