const { spawn } = require("child_process"); const scripts = ["./v7.js", "./vod.js", "./ai-napo.js","./trad.js","./node.js"]; // Liste des scripts des bots const processes = {}; // Stocker les processus actifs // Fonction pour démarrer un bot function startBot(scriptPath) { console.log(`[INFO] Lancement de ${scriptPath}`); const botProcess = spawn("node", [scriptPath]); processes[scriptPath] = botProcess; // Stocker le processus actif botProcess.stdout.on("data", (data) => { console.log(`[${scriptPath}]: ${data}`); }); botProcess.stderr.on("data", (data) => { console.error(`[${scriptPath} ERROR]: ${data}`); }); botProcess.on("close", (code) => { console.log(`[${scriptPath}] s'est arrêté avec le code ${code}. Redémarrage en cours...`); restartBot(scriptPath); // Redémarrer le bot immédiatement }); } // Fonction pour redémarrer un bot function restartBot(scriptPath) { if (processes[scriptPath]) { delete processes[scriptPath]; // Supprimer le processus existant de la liste } setTimeout(() => startBot(scriptPath), 50); // Redémarrer après 1 seconde } // Lancer tous les bots scripts.forEach((script) => startBot(script)); // Gestion des signaux pour arrêter proprement les processus enfants process.on("SIGINT", () => { console.log("\n[INFO] Arrêt des bots..."); Object.values(processes).forEach((botProcess) => { botProcess.kill(); // Arrêter chaque processus }); process.exit(); });