stop_test_environment.sh
2.39 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#!/bin/bash
# 停止测试环境脚本
set -e
# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
# 配置
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(dirname "$SCRIPT_DIR")"
PID_FILE="$PROJECT_ROOT/test_environment.pid"
ES_PID_FILE="$PROJECT_ROOT/test_logs/es.pid"
echo -e "${BLUE}========================================${NC}"
echo -e "${BLUE}停止测试环境${NC}"
echo -e "${BLUE}========================================${NC}"
# 停止API服务
if [ -f "$PID_FILE" ]; then
API_PID=$(cat "$PID_FILE")
if ps -p $API_PID > /dev/null 2>&1; then
echo -e "${BLUE}停止API服务 (PID: $API_PID)...${NC}"
kill $API_PID
# 等待进程结束
for i in {1..10}; do
if ! ps -p $API_PID > /dev/null 2>&1; then
echo -e "${GREEN}✓ API服务已停止${NC}"
break
fi
if [ $i -eq 10 ]; then
echo -e "${YELLOW}强制停止API服务...${NC}"
kill -9 $API_PID 2>/dev/null || true
fi
sleep 1
done
else
echo -e "${YELLOW}API服务进程不存在${NC}"
fi
rm -f "$PID_FILE"
else
echo -e "${YELLOW}未找到API服务PID文件${NC}"
fi
# 停止Elasticsearch(如果是本地启动的)
if [ -f "$ES_PID_FILE" ]; then
ES_PID=$(cat "$ES_PID_FILE")
if ps -p $ES_PID > /dev/null 2>&1; then
echo -e "${BLUE}停止本地Elasticsearch (PID: $ES_PID)...${NC}"
kill $ES_PID
rm -f "$ES_PID_FILE"
echo -e "${GREEN}✓ Elasticsearch已停止${NC}"
else
echo -e "${YELLOW}Elasticsearch进程不存在${NC}"
rm -f "$ES_PID_FILE"
fi
else
echo -e "${BLUE}跳过本地Elasticsearch停止(未找到PID文件)${NC}"
fi
# 清理测试环境文件
echo -e "${BLUE}清理测试环境文件...${NC}"
rm -f "$PROJECT_ROOT/test_env.sh"
# 清理测试索引(可选)
read -p "是否删除测试索引? (y/N): " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
echo -e "${BLUE}删除测试索引...${NC}"
curl -X DELETE "http://localhost:9200/test_products" 2>/dev/null || true
echo -e "${GREEN}✓ 测试索引已删除${NC}"
fi
echo -e "${GREEN}========================================${NC}"
echo -e "${GREEN}测试环境已停止!${NC}"
echo -e "${GREEN}========================================${NC}"