systemabilitymgr_safwk/stop_services.sh

65 lines
1.4 KiB
Bash
Raw Normal View History

#!/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."