#!/bin/bash # FlaskFarm + Celery 전체 재시작 스크립트 # 사용법: ./restart_all.sh cd /Volumes/WD/Users/Work/python/flaskfarm # 색상 정의 RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' NC='\033[0m' # No Color echo -e "${YELLOW}========================================${NC}" echo -e "${YELLOW} FlaskFarm + Celery 전체 재시작${NC}" echo -e "${YELLOW}========================================${NC}" # --------------------------- # 1. 기존 프로세스 종료 # --------------------------- echo -e "\n${RED}[1/4] 기존 프로세스 종료 중...${NC}" # FlaskFarm 프로세스 종료 pkill -9 -f "python main.py" 2>/dev/null lsof -ti :9099 | xargs kill -9 2>/dev/null echo " ✓ FlaskFarm 프로세스 종료됨" # Celery 워커 종료 pkill -9 -f "celery.*worker" 2>/dev/null pkill -9 -f "celery -A flaskfarm" 2>/dev/null echo " ✓ Celery 워커 종료됨" # 잠시 대기 (포트 해제 등) sleep 2 # --------------------------- # 2. pyenv 초기화 # --------------------------- echo -e "\n${GREEN}[2/4] Python 환경 초기화 중...${NC}" export PYENV_ROOT="$HOME/.pyenv" export PATH="$PYENV_ROOT/bin:$PATH" if command -v pyenv &> /dev/null; then eval "$(pyenv init -)" eval "$(pyenv virtualenv-init -)" 2>/dev/null fi export GEVENT_NOWAITPID=1 export PYTHONWARNINGS="ignore::DeprecationWarning" echo " ✓ Python 환경 준비됨" # --------------------------- # 3. Celery 워커 시작 (백그라운드) # --------------------------- echo -e "\n${GREEN}[3/4] Celery 워커 시작 중 (백그라운드)...${NC}" # 로그 파일 경로 CELERY_LOG_DIR="data/log" mkdir -p "$CELERY_LOG_DIR" CELERY_LOG_FILE="$CELERY_LOG_DIR/celery_worker.log" # Celery 워커 시작 nohup celery -A main.celery worker \ --loglevel=info \ --pool=gevent \ --concurrency=4 \ --config_filepath=data/config_mac.yaml \ --running_type=local \ > "$CELERY_LOG_FILE" 2>&1 & CELERY_PID=$! echo " ✓ Celery 워커 시작됨 (PID: $CELERY_PID)" echo " ✓ 로그: $CELERY_LOG_FILE" # Celery가 시작될 시간 확보 sleep 2 # --------------------------- # 4. FlaskFarm 시작 (포어그라운드) # --------------------------- echo -e "\n${GREEN}[4/4] FlaskFarm 시작 중...${NC}" echo -e "${YELLOW}========================================${NC}" echo "" # FlaskFarm 시작 (gommi_mac.sh 호출) ./gommi_mac.sh