Monitor running services and restart if needed.
(self)
| 467 | del self.processes[service_name] |
| 468 | |
| 469 | def monitor(self): |
| 470 | """Monitor running services and restart if needed.""" |
| 471 | self.logger.info("👁️ Monitoring services... (Press Ctrl+C to stop)") |
| 472 | |
| 473 | try: |
| 474 | while self.running: |
| 475 | time.sleep(30) # Check every 30 seconds |
| 476 | |
| 477 | for service_name, process in list(self.processes.items()): |
| 478 | if process.poll() is not None: |
| 479 | self.logger.warning(f"⚠️ {service_name} has stopped unexpectedly") |
| 480 | |
| 481 | # Restart the service |
| 482 | config = self.services[service_name] |
| 483 | if config.required: |
| 484 | self.logger.info(f"🔄 Restarting {service_name}...") |
| 485 | del self.processes[service_name] |
| 486 | self.start_service(service_name, config) |
| 487 | |
| 488 | except KeyboardInterrupt: |
| 489 | self.logger.info("Monitoring stopped by user") |
| 490 | |
| 491 | def main(): |
| 492 | """Main entry point.""" |