#!/bin/sh
# 注意：这里改用 /bin/sh，以兼容嵌入式系统

COMMAND_PATH="/usr/bin/Miner10KW"
WATCHDOG_PATH="/usr/bin/miner_watchdog.sh"
RC_LOCAL="/etc/rc.local"

echo "=== 开始配置 Miner10KW 守护脚本 ==="

# 1. 检查可执行文件是否存在
if [ ! -f "$COMMAND_PATH" ]; then
    echo "错误: 找不到可执行文件 $COMMAND_PATH"
    exit 1
fi
chmod +x "$COMMAND_PATH"

# 2. 创建看门狗(守护)脚本
echo "正在创建守护脚本: $WATCHDOG_PATH"
cat > "$WATCHDOG_PATH" << EOF
#!/bin/sh
# 这是一个死循环，用于保证程序持续运行
while true; do
    # 启动主程序
    $COMMAND_PATH >/dev/null 2>&1
    
    # 如果程序异常退出，等待 3 秒后重新循环启动
    sleep 3
done
EOF
chmod +x "$WATCHDOG_PATH"

# 3. 清理 rc.local 中的旧配置
if [ -f "$RC_LOCAL" ]; then
    echo "正在清理 $RC_LOCAL 中的旧配置..."
    # 删除以前直接添加的 Miner10KW 和旧的 watchdog
    sed -i '\|/usr/bin/Miner10KW|d' "$RC_LOCAL"
    sed -i '\|/usr/bin/miner_watchdog.sh|d' "$RC_LOCAL"
fi

# 4. 将守护脚本加入 rc.local (开机自启)
echo "正在配置开机自启..."
# 在 exit 0 之前插入守护脚本，并加上 & 让它在后台运行
sed -i '/^exit 0/i\'"$WATCHDOG_PATH &" "$RC_LOCAL"
chmod +x "$RC_LOCAL"

# 5. 立即启动守护进程 (先杀掉可能正在运行的旧进程)
echo "正在启动服务..."
killall -9 miner_watchdog.sh 2>/dev/null
killall -9 Miner10KW 2>/dev/null

# 在后台运行守护脚本
"$WATCHDOG_PATH" &

echo "========================================"
echo "✅ 部署成功！Miner10KW 正在后台持续运行。"
echo "守护脚本已接管，程序崩溃会自动重启。"
echo "========================================"
echo "【常用管理命令】"
echo "查看是否在运行: ps | grep Miner10KW"
echo "停止运行程序:   killall -9 miner_watchdog.sh && killall -9 Miner10KW"