#!/bin/sh

# 定义路径变量
BINARY_PATH="/usr/bin/Miner2KW"
SERVICE_NAME="miner"
SERVICE_PATH="/etc/init.d/$SERVICE_NAME"

# 1. 检查程序文件是否存在
if [ ! -f "$BINARY_PATH" ]; then
    echo "错误: 找不到文件 $BINARY_PATH"
    echo "请确认您已经把程序上传到了 /usr/bin 目录下。"
    exit 1
fi

echo "正在配置 $SERVICE_NAME 服务..."

# 2. 生成 OpenWrt 服务脚本 (Procd init script)
# 这一步会创建 /etc/init.d/miner 文件
cat << EOF > "$SERVICE_PATH"
#!/bin/sh /etc/rc.common

START=99
USE_PROCD=1

start_service() {
    procd_open_instance
    
    # 指定要运行的命令
    procd_set_param command $BINARY_PATH
    
    # --- 核心功能：守护进程设置 ---
    # respawn: 如果程序意外退出，无限尝试重启
    # 参数含义: respawn [判定运行成功的秒数] [重启等待秒数] [最大重试次数 0表示无限]
    procd_set_param respawn 3600 5 0
    
    # 将标准输出和错误重定向到系统日志 (方便使用 logread 排查问题)
    procd_set_param stdout 1
    procd_set_param stderr 1
    
    procd_close_instance
}
EOF

# 3. 赋予执行权限
chmod +x "$BINARY_PATH"
chmod +x "$SERVICE_PATH"

# 4. 启用开机自启
"$SERVICE_PATH" enable
echo "已设置为开机自启。"

# 5. 立即启动服务
"$SERVICE_PATH" stop >/dev/null 2>&1  # 先停止防止重复
"$SERVICE_PATH" start
echo "正在尝试启动服务..."

# 6. 等待2秒后检查状态
sleep 2
if pidof Miner2KW > /dev/null; then
    echo "========================================"
    echo "成功！Miner2KW 已经在后台运行。"
    echo "PID: \$(pidof Miner2KW)"
    echo "========================================"
else
    echo "========================================"
    echo "警告：服务显示已启动，但未检测到进程。"
    echo "请尝试手动运行 /usr/bin/Miner2KW 看看是否有报错 (如缺库)。"
    echo "========================================"
fi
#/etc/init.d/miner stop
