#!/bin/bash # 设置颜色输出 RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' NC='\033[0m' # No Color echo -e "${YELLOW}停止 Goalfymax Admin 服务...${NC}" # 切换到项目根目录 cd "$(dirname "$0")/.." # 检查 PID 文件是否存在 if [ ! -f "admin-server.pid" ]; then echo -e "${RED}✗ 服务未运行 (找不到 PID 文件)${NC}" exit 1 fi # 读取 PID PID=$(cat admin-server.pid) # 检查进程是否存在 if ! ps -p $PID > /dev/null 2>&1; then echo -e "${RED}✗ 服务未运行 (进程不存在)${NC}" rm -f admin-server.pid exit 1 fi # 停止服务 echo -e "${YELLOW}正在停止服务 (PID: $PID)...${NC}" kill $PID # 等待进程结束 for i in {1..10}; do if ! ps -p $PID > /dev/null 2>&1; then echo -e "${GREEN}✓ 服务已停止${NC}" rm -f admin-server.pid exit 0 fi sleep 1 done # 如果进程还没结束,强制终止 if ps -p $PID > /dev/null 2>&1; then echo -e "${YELLOW}强制终止服务...${NC}" kill -9 $PID sleep 1 if ! ps -p $PID > /dev/null 2>&1; then echo -e "${GREEN}✓ 服务已强制停止${NC}" rm -f admin-server.pid else echo -e "${RED}✗ 无法停止服务${NC}" exit 1 fi fi