65 lines
1.4 KiB
Bash
Executable File
65 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
||
|
||
# 停止所有启动的分布式服务
|
||
# 使用方法:
|
||
# 1. 暂停所有服务:./stop_services.sh all
|
||
# 2. 暂替某个服务:./stop_services.sh [samgr|huks|deviceauth|softbus|dm|dfs|datamgr]
|
||
|
||
# 定义map,保存参数和对应执行的shell命令
|
||
declare -A COMMAND_MAP=(
|
||
["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"
|
||
["datamgr"]="pkill -f distributeddata"\
|
||
)
|
||
|
||
# 日志打印函数
|
||
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."
|