#!/bin/bash
# Tactical OS Multi-Process Manager

VENV_PYTHON="/var/www/html/GAP/venv/bin/python3"
DIR="/var/www/html/GAP"

# 🔴 تابع شکار سیگنال‌های لینوکس برای بستن امن (Graceful Shutdown)
cleanup() {
    echo "[SYSTEMD MANAGER] Terminating all microservices safely..."
    kill -TERM "$PID1" 2>/dev/null
    kill -TERM "$PID2" 2>/dev/null
    wait "$PID1" 2>/dev/null
    wait "$PID2" 2>/dev/null
    echo "[SYSTEMD MANAGER] Shutdown complete."
    exit 0
}

# متصل کردن سیگنال‌های توقف لینوکس به تابع کلین‌آپ ما
trap cleanup SIGINT SIGTERM

echo "[SYSTEMD MANAGER] Starting Main Hubema Streamer..."
$VENV_PYTHON $DIR/streamer.py &
PID1=$!

echo "[SYSTEMD MANAGER] Starting Stealth TTL Catcher Node..."
$VENV_PYTHON $DIR/ttl_catcher.py &
PID2=$!

# 🔴 شاهکار معماری همزمانی (wait -n): 
# منتظر می‌ماند تا اگر یکی از اسکریپت‌ها متوقف شد، 
# دیگری را هم سریعاً بکشد تا Systemd هر دو را با هم Restart کند!
wait -n

echo "[SYSTEMD MANAGER] A node crashed! Triggering auto-heal restart..."
kill -TERM "$PID1" 2>/dev/null
kill -TERM "$PID2" 2>/dev/null
exit 1
