#!/bin/bash
# Apache + PM2 watchdog - 1분마다 실행
# cron: * * * * * /c/laragon/www/site_user/scripts/watchdog.sh

APACHE_BIN="/c/laragon/bin/apache/httpd-2.4.47-win64-VS16/bin/httpd.exe"
LOG_FILE="/c/laragon/www/site_user/logs/watchdog.log"

# Apache 체크
HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" --max-time 5 "http://localhost/site_user/api/auth.php?action=me" 2>/dev/null)

if [ "$HTTP_CODE" = "000" ] || [ -z "$HTTP_CODE" ]; then
    echo "[$(date '+%Y-%m-%d %H:%M:%S')] Apache DOWN (code: $HTTP_CODE) - Restarting..." >> "$LOG_FILE"

    # Apache 프로세스 강제 종료
    taskkill //f //im httpd.exe > /dev/null 2>&1
    sleep 2

    # Apache 재시작
    "$APACHE_BIN" &
    sleep 3

    # 재시작 확인
    NEW_CODE=$(curl -s -o /dev/null -w "%{http_code}" --max-time 5 "http://localhost/site_user/api/auth.php?action=me" 2>/dev/null)
    echo "[$(date '+%Y-%m-%d %H:%M:%S')] Apache restarted (code: $NEW_CODE)" >> "$LOG_FILE"
fi

# PM2 프로세스 체크
pm2 list 2>/dev/null | grep -q "errored" && {
    echo "[$(date '+%Y-%m-%d %H:%M:%S')] PM2 errored processes found - Restarting..." >> "$LOG_FILE"
    pm2 restart all 2>/dev/null
}

# Egg 모니터링 + 자동 양쪽 배팅 (1분마다)
PHP_BIN="/c/laragon/bin/php/php-7.4.19-Win32-vc15-x64/php.exe"
"$PHP_BIN" /c/laragon/www/site_user/scripts/egg_monitor.php 2>/dev/null &
