topfans/backend/stop.sh
2026-04-07 22:29:48 +08:00

52 lines
1.5 KiB
Bash
Executable File

#!/bin/bash
# TopFans Backend - 停止所有已編譯二進制服務和網關
set -e
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m'
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "$SCRIPT_DIR"
echo -e "${GREEN}========================================${NC}"
echo -e "${GREEN} TopFans Backend 二進制停止腳本${NC}"
echo -e "${GREEN}========================================${NC}"
echo ""
services=(userService assetService socialService galleryService activityService gateway)
for svc in "${services[@]}"; do
if pgrep -f "$svc" >/dev/null 2>&1; then
echo -e "${YELLOW}🛑 正在停止 $svc...${NC}"
pkill -9 -f "$svc" || true
echo -e "${GREEN}$svc 已停止${NC}"
else
echo -e "${YELLOW}⚠️ $svc 未在運行${NC}"
fi
done
echo ""
echo -e "${YELLOW}🧹 清理殘留端口(如有)...${NC}"
# 端口: user=20000 social=20001 asset=20003 gallery=20004 activity=20005 gateway=8080
ports=(20000 20001 20003 20004 20005 8080)
for p in "${ports[@]}"; do
if command -v lsof >/dev/null 2>&1; then
PIDS=$(lsof -tiTCP:"$p" -sTCP:LISTEN 2>/dev/null || true)
if [ -n "$PIDS" ]; then
echo -e "${YELLOW}🛑 停止佔用端口 $p 的進程: $PIDS${NC}"
kill -9 $PIDS 2>/dev/null || true
echo -e "${GREEN}✅ 端口 $p 已釋放${NC}"
fi
fi
done
echo ""
echo -e "${GREEN}========================================${NC}"
echo -e "${GREEN} 所有二進制服務已停止${NC}"
echo -e "${GREEN}========================================${NC}"