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