mvm2-math-verification / scripts /start_all_local.py
Varshith dharmaj
Robust MVM2 System Sync: Fixed Imports and Restored Services
b25b8f2 verified
import subprocess
import time
import sys
import os
import signal
services = [
("services/input_receiver", 8000),
("services/preprocessing_service", 8001),
("services/ocr_service", 8002),
("services/representation_service", 8003),
("services/verification_service", 8004),
("services/classifier_service", 8005),
("services/reporting_service", 8006),
]
processes = []
def start_services():
print("Starting all microservices locally...")
for path, port in services:
print(f"Starting {os.path.basename(path)} on port {port}...")
env = os.environ.copy()
# Use python -m uvicorn app:app --port
# (Assuming app.py is the main file name due to the recent cleanup script!)
p = subprocess.Popen(
[sys.executable, "-m", "uvicorn", "app:app", "--host", "127.0.0.0", "--port", str(port)],
cwd=path,
env=env,
stdout=subprocess.DEVNULL,
stderr=subprocess.DEVNULL
)
processes.append(p)
print("Giving services 5 seconds to boot up...")
time.sleep(5)
def stop_services():
print("Stopping all microservices...")
for p in processes:
p.terminate()
p.wait()
print("All services stopped.")
if __name__ == "__main__":
try:
start_services()
print("Running Benchmark...")
subprocess.run([sys.executable, "scripts/benchmark_gsm8k.py"])
finally:
stop_services()