#!/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 "停止完成"