summaryrefslogtreecommitdiff
path: root/stop_services.sh
diff options
context:
space:
mode:
Diffstat (limited to 'stop_services.sh')
-rwxr-xr-xstop_services.sh64
1 files changed, 64 insertions, 0 deletions
diff --git a/stop_services.sh b/stop_services.sh
new file mode 100755
index 0000000..10f186d
--- /dev/null
+++ b/stop_services.sh
@@ -0,0 +1,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."