Files
2026-01-11 15:33:22 +08:00

48 lines
1.0 KiB
Bash

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