#!/bin/bash
#
# 重启 Task 服务（Spring Boot JAR）
#
# 用法: restart-task.sh [profile] [jvm_opts]

TASK_DIR="/opt/smartclean/task"
JAR_FILE="$TASK_DIR/task.jar"
PID_FILE="$TASK_DIR/task.pid"
LOG_FILE="$TASK_DIR/logs/task.log"
PROFILE="${1:-prod}"
JVM_OPTS="${2:--Xms256m -Xmx512m}"

# 停止旧进程
if [ -f "$PID_FILE" ]; then
    OLD_PID=$(cat "$PID_FILE")
    if kill -0 "$OLD_PID" 2>/dev/null; then
        echo "[INFO] 停止旧进程 PID=$OLD_PID"
        kill "$OLD_PID"
        sleep 3
        if kill -0 "$OLD_PID" 2>/dev/null; then
            echo "[WARN] 进程未正常退出，强制终止"
            kill -9 "$OLD_PID"
        fi
    fi
    rm -f "$PID_FILE"
fi

# 启动新进程
echo "[INFO] 启动 Task 服务 (profile=$PROFILE)..."
nohup java $JVM_OPTS \
    -jar "$JAR_FILE" \
    --spring.profiles.active=$PROFILE \
    > "$LOG_FILE" 2>&1 &

echo $! > "$PID_FILE"
echo "[INFO] Task 服务已启动, PID=$(cat "$PID_FILE")"
