blob: 10f186d142b0752f65a5c812b7a9c9127e21feed (
plain)
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
|
#!/bin/bash
# 停止所有启动的分布式服务
# 使用方法:
# 1. 暂停所有服务:./stop_services.sh all
# 2. 暂替某个服务:./stop_services.sh [samgr|huks|deviceauth|softbus|dm|dfs|datamgr]
# 定义map,保存参数和对应执行的shell命令
declare -A COMMAND_MAP=(
["datamgr"]="pkill -f distributeddata"
["dfs"]="pkill -f distributedfile"
["dm"]="pkill -f device_manager"
["softbus"]="pkill -f softbus_server"
["deviceauth"]="pkill -f deviceauth_service"
["huks"]="pkill -f huks_service"
["samgr"]="pkill -f samgr"
)
# 日志打印函数
log() {
case $1 in
error)
echo "[ERROR] $2"
;;
info)
echo "[INFO] $2"
;;
debug)
if [ "$DEBUG_MODE" == "true" ]; then
echo "[DEBUG] $2"
fi
;;
*)
echo "Invalid log level: $1"
;;
esac
}
# 判断参数是否为空
if [ -z "$1" ]; then
log error "Usage: $0 [all|samgr|huks|deviceauth|softbus|dm|dfs|datamgr]"
exit 1
fi
# 验证参数并执行相应命令
if [ "$1" == "all" ]; then
log info "Stop all services..."
for key in "${!COMMAND_MAP[@]}"; do
log info "Stop $key service..."
# 执行命令
eval ${COMMAND_MAP[$key]}
done
else
if [ "${COMMAND_MAP[$1]+isset}" ]; then
log info "Stop $1 service..."
# 执行命令
eval ${COMMAND_MAP[$1]}
else
log error "Invalid parameter: $1"
exit 1
fi
fi
log info "Done."
|