70 lines
1.7 KiB
Bash
70 lines
1.7 KiB
Bash
#!/bin/bash
|
||
# 3588AdminBackend 停止脚本
|
||
|
||
APP_NAME="managerd"
|
||
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||
APP_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
|
||
PID_FILE="$APP_DIR/$APP_NAME.pid"
|
||
|
||
echo "========== 停止 3588AdminBackend =========="
|
||
|
||
if [ ! -f "$PID_FILE" ]; then
|
||
echo "ℹ️ $APP_NAME 未在运行 (PID 文件不存在)"
|
||
|
||
# 尝试查找进程
|
||
PID=$(pgrep -f "^$APP_DIR/bin/$APP_NAME" | head -1)
|
||
if [ -n "$PID" ]; then
|
||
echo "发现运行中的进程 (PID: $PID),尝试停止..."
|
||
kill "$PID" 2>/dev/null || true
|
||
|
||
for i in {1..10}; do
|
||
if ! ps -p "$PID" > /dev/null 2>&1; then
|
||
echo "✅ 已停止"
|
||
exit 0
|
||
fi
|
||
sleep 1
|
||
done
|
||
|
||
echo "强制结束进程..."
|
||
kill -9 "$PID" 2>/dev/null || true
|
||
echo "✅ 已停止"
|
||
fi
|
||
exit 0
|
||
fi
|
||
|
||
PID=$(cat "$PID_FILE")
|
||
if ps -p "$PID" > /dev/null 2>&1; then
|
||
echo "正在停止 $APP_NAME (PID: $PID)..."
|
||
kill "$PID"
|
||
|
||
# 等待进程结束
|
||
echo -n "等待进程结束"
|
||
for i in {1..10}; do
|
||
if ! ps -p "$PID" > /dev/null 2>&1; then
|
||
echo ""
|
||
echo "✅ 已停止"
|
||
rm -f "$PID_FILE"
|
||
exit 0
|
||
fi
|
||
echo -n "."
|
||
sleep 1
|
||
done
|
||
echo ""
|
||
|
||
# 强制结束
|
||
echo "进程未响应,强制结束..."
|
||
kill -9 "$PID" 2>/dev/null || true
|
||
sleep 1
|
||
|
||
if ! ps -p "$PID" > /dev/null 2>&1; then
|
||
echo "✅ 已强制停止"
|
||
else
|
||
echo "❌ 无法停止进程,请手动检查"
|
||
exit 1
|
||
fi
|
||
else
|
||
echo "ℹ️ 进程不存在 (PID: $PID),清理 PID 文件"
|
||
fi
|
||
|
||
rm -f "$PID_FILE"
|