first commit
This commit is contained in:
98
start-services.sh
Normal file
98
start-services.sh
Normal file
@@ -0,0 +1,98 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Django ve Celery servislerini başlatma scripti
|
||||
# Kullanım: ./start-services.sh
|
||||
|
||||
set -e
|
||||
|
||||
echo "🚀 Django ve Celery servisleri başlatılıyor..."
|
||||
|
||||
# Renk kodları
|
||||
GREEN='\033[0;32m'
|
||||
BLUE='\033[0;34m'
|
||||
RED='\033[0;31m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
# PID dosyaları için dizin
|
||||
PID_DIR="./pids"
|
||||
mkdir -p $PID_DIR
|
||||
|
||||
# Django PID
|
||||
DJANGO_PID="$PID_DIR/django.pid"
|
||||
# Celery Worker PID
|
||||
CELERY_WORKER_PID="$PID_DIR/celery_worker.pid"
|
||||
|
||||
# Cleanup fonksiyonu - Script sonlandığında çağrılır
|
||||
cleanup() {
|
||||
echo -e "\n${RED}🛑 Servisler durduruluyor...${NC}"
|
||||
|
||||
if [ -f "$DJANGO_PID" ]; then
|
||||
DJANGO_PID_VALUE=$(cat $DJANGO_PID)
|
||||
if ps -p $DJANGO_PID_VALUE > /dev/null 2>&1; then
|
||||
echo -e "${BLUE}Django sunucusu durduruluyor (PID: $DJANGO_PID_VALUE)${NC}"
|
||||
kill -TERM $DJANGO_PID_VALUE 2>/dev/null || true
|
||||
fi
|
||||
rm -f $DJANGO_PID
|
||||
fi
|
||||
|
||||
if [ -f "$CELERY_WORKER_PID" ]; then
|
||||
CELERY_PID_VALUE=$(cat $CELERY_WORKER_PID)
|
||||
if ps -p $CELERY_PID_VALUE > /dev/null 2>&1; then
|
||||
echo -e "${BLUE}Celery worker durduruluyor (PID: $CELERY_PID_VALUE)${NC}"
|
||||
kill -TERM $CELERY_PID_VALUE 2>/dev/null || true
|
||||
fi
|
||||
rm -f $CELERY_WORKER_PID
|
||||
fi
|
||||
|
||||
# Celery process'lerini temizle
|
||||
pkill -f "celery worker" 2>/dev/null || true
|
||||
|
||||
echo -e "${GREEN}✅ Tüm servisler durduruldu${NC}"
|
||||
exit 0
|
||||
}
|
||||
|
||||
# SIGINT (Ctrl+C) ve SIGTERM sinyallerini yakala
|
||||
trap cleanup SIGINT SIGTERM
|
||||
|
||||
# Eski PID dosyalarını temizle
|
||||
rm -f $DJANGO_PID $CELERY_WORKER_PID
|
||||
|
||||
echo -e "${BLUE}📦 Migrasyonlar kontrol ediliyor...${NC}"
|
||||
python manage.py migrate --noinput
|
||||
|
||||
echo -e "${BLUE}📁 Static dosyalar toplaniyor...${NC}"
|
||||
python manage.py collectstatic --noinput
|
||||
|
||||
echo -e "${GREEN}✅ Hazırlık tamamlandı${NC}\n"
|
||||
|
||||
# Django sunucusunu başlat
|
||||
echo -e "${BLUE}🌐 Django development sunucusu başlatılıyor...${NC}"
|
||||
python manage.py runserver 0.0.0.0:8000 > ./logs/django.log 2>&1 &
|
||||
DJANGO_PID_VALUE=$!
|
||||
echo $DJANGO_PID_VALUE > $DJANGO_PID
|
||||
echo -e "${GREEN}✅ Django sunucusu başlatıldı (PID: $DJANGO_PID_VALUE)${NC}"
|
||||
echo -e "${GREEN} URL: http://localhost:8000${NC}\n"
|
||||
|
||||
# Celery worker'ı başlat
|
||||
echo -e "${BLUE}⚙️ Celery worker başlatılıyor...${NC}"
|
||||
celery -A core worker --loglevel=info > ./logs/celery.log 2>&1 &
|
||||
CELERY_PID_VALUE=$!
|
||||
echo $CELERY_PID_VALUE > $CELERY_WORKER_PID
|
||||
echo -e "${GREEN}✅ Celery worker başlatıldı (PID: $CELERY_PID_VALUE)${NC}\n"
|
||||
|
||||
echo -e "${GREEN}========================================${NC}"
|
||||
echo -e "${GREEN}🎉 Tüm servisler başarıyla başlatıldı!${NC}"
|
||||
echo -e "${GREEN}========================================${NC}"
|
||||
echo -e "${BLUE}Django Server:${NC} http://localhost:8000"
|
||||
echo -e "${BLUE}Loglar:${NC}"
|
||||
echo -e " - Django: ./logs/django.log"
|
||||
echo -e " - Celery: ./logs/celery.log"
|
||||
echo -e "\n${RED}Durdurmak için Ctrl+C tuşlarına basın${NC}\n"
|
||||
|
||||
# Logları takip et
|
||||
tail -f ./logs/django.log ./logs/celery.log &
|
||||
TAIL_PID=$!
|
||||
|
||||
# Sonsuz döngü - servisler çalışmaya devam etsin
|
||||
wait $DJANGO_PID_VALUE $CELERY_PID_VALUE
|
||||
|
||||
Reference in New Issue
Block a user