43 lines
1.2 KiB
Bash
Executable File
43 lines
1.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
||
# =============================================================================
|
||
# stop.sh — 停止后端 Go 服务
|
||
#
|
||
# 用法:
|
||
# ./stop.sh # 停止全部后端服务
|
||
# ./stop.sh <svc> # 只停止指定服务
|
||
#
|
||
# 注意:此命令只停止后端进程,不影响 Docker 容器(Redis/Kafka/Etcd)
|
||
# 如需停止 Docker 容器,执行: ./stop-infra.sh
|
||
# =============================================================================
|
||
set -euo pipefail
|
||
source "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/common.sh"
|
||
init_dirs
|
||
init_script_log # ← 脚本执行日志
|
||
|
||
TARGET="${1:-all}"
|
||
|
||
if [[ "$TARGET" == "all" ]]; then
|
||
step "停止所有后端服务"
|
||
for svc in "${ALL_SVCS[@]}"; do
|
||
stop_svc "$svc"
|
||
done
|
||
echo ""
|
||
success "所有后端服务已停止"
|
||
echo ""
|
||
echo -e "如需停止 Docker 基础设施:"
|
||
echo -e " ${CYAN}./deploy-test/stop-infra.sh${NC}"
|
||
else
|
||
step "停止服务: $TARGET"
|
||
# 验证服务名合法
|
||
local_valid=false
|
||
for svc in "${ALL_SVCS[@]}"; do
|
||
[[ "$svc" == "$TARGET" ]] && local_valid=true && break
|
||
done
|
||
if ! $local_valid; then
|
||
error "未知服务: $TARGET"
|
||
echo "可用: ${ALL_SVCS[*]}"
|
||
exit 1
|
||
fi
|
||
stop_svc "$TARGET"
|
||
fi
|