#!/bin/bash

# 快速停止脚本 - 无需确认

if [ "$(id -u)" -ne 0 ]; then
    echo "需要 root 权限，请使用: sudo $0"
    exit 1
fi

APP_NAME="syslog-serve"
PID_FILE="/tmp/${APP_NAME}.pid"
PORTS=(514 8189)

echo "停止 ${APP_NAME}..."

# 1. 通过 PID 文件停止
if [ -f "$PID_FILE" ]; then
    PID=$(cat $PID_FILE)
    if kill -0 $PID 2>/dev/null; then
        echo "停止进程 $PID..."
        kill -15 $PID
        sleep 3

        if kill -0 $PID 2>/dev/null; then
            echo "强制停止..."
            kill -9 $PID
        fi
    fi
    rm -f $PID_FILE
fi

# 2. 停止所有监听端口的 Java 进程
for port in ${PORTS[@]}; do
    PIDS=$(lsof -ti:$port 2>/dev/null)
    if [ ! -z "$PIDS" ]; then
        for pid in $PIDS; do
            if ps -p $pid | grep -q "java"; then
                echo "停止监听端口 $port 的进程 $pid..."
                kill -9 $pid 2>/dev/null
            fi
        done
    fi
done

# 3. 停止所有包含应用名的进程
pkill -f "java.*syslog-serve" 2>/dev/null

echo "停止完成"