84 lines
2.3 KiB
Bash
84 lines
2.3 KiB
Bash
|
|
#!/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
|