#!/bin/bash # 简化版 UU 加速器监控脚本 # 基本配置 INSTALL_DIR="/usr/lib/uu" CONFIG_DIR="/etc/uu" RUNNING_DIR="/tmp/uu" PLUGIN_TAR="uu.tar.gz" PLUGIN_EXE="uuplugin" PLUGIN_CONF="uu.conf" PID_FILE="/var/run/uuplugin.pid" PLUGIN_TAR_MD5_FILE="uu.tar.gz.md5" DOWNLOAD_URL="https://router.uu.163.com/api/plugin?type=steam-deck-plugin-x86_64" # 确保目录存在 mkdir -p "$INSTALL_DIR" "$CONFIG_DIR" "$RUNNING_DIR" # 下载插件包 download_plugin() { local tmp_file="$RUNNING_DIR/$PLUGIN_TAR" local plugin_info=$(curl -s -k -H "Accept:text/plain" "$DOWNLOAD_URL") [ -z "$plugin_info" ] && return 1 local plugin_url=$(echo "$plugin_info" | cut -d',' -f1) local plugin_md5=$(echo "$plugin_info" | cut -d',' -f2) if ! curl -s -k "$plugin_url" -o "$tmp_file"; then rm -f "$tmp_file" return 1 fi local download_md5=$(md5sum "$tmp_file" | awk '{print $1}') if [ "$download_md5" != "$plugin_md5" ]; then rm -f "$tmp_file" return 1 fi # 解压并安装 if tar -xzf "$tmp_file" -C "$RUNNING_DIR"; then chmod +x "$RUNNING_DIR/$PLUGIN_EXE" mv "$tmp_file" "$INSTALL_DIR/" echo "$plugin_md5" > "$INSTALL_DIR/$PLUGIN_TAR_MD5_FILE" return 0 fi rm -f "$tmp_file" return 1 } # 检查是否运行 is_running() { if [ -f "$PID_FILE" ]; then local pid=$(cat "$PID_FILE") if ps -p "$pid" >/dev/null 2>&1; then return 0 fi fi return 1 } # 启动插件 start_plugin() { if [ -f "$RUNNING_DIR/$PLUGIN_EXE" ]; then "$RUNNING_DIR/$PLUGIN_EXE" "$CONFIG_DIR/$PLUGIN_CONF" >/dev/null 2>&1 & return 0 elif [ -f "$INSTALL_DIR/$PLUGIN_TAR" ]; then if tar -xzf "$INSTALL_DIR/$PLUGIN_TAR" -C "$RUNNING_DIR"; then chmod +x "$RUNNING_DIR/$PLUGIN_EXE" "$RUNNING_DIR/$PLUGIN_EXE" "$CONFIG_DIR/$PLUGIN_CONF" >/dev/null 2>&1 & return 0 fi fi return 1 } # 主循环 while true; do if ! is_running; then if ! start_plugin; then if ! download_plugin; then echo "无法下载或启动插件,将在5秒后重试..." sleep 5 continue fi start_plugin fi fi sleep 60 done