import os from http.server import ThreadingHTTPServer from amc_server.context import DATA_DIR, PORT from amc_server.handler import AMCHandler from amc_server.logging_utils import LOGGER, configure_logging, install_signal_handlers def main(): configure_logging() DATA_DIR.mkdir(parents=True, exist_ok=True) LOGGER.info("Starting AMC server") server = ThreadingHTTPServer(("127.0.0.1", PORT), AMCHandler) install_signal_handlers(server) LOGGER.info("AMC server listening on http://127.0.0.1:%s", PORT) # Write PID file pid_file = DATA_DIR / "server.pid" pid_file.write_text(str(os.getpid())) try: server.serve_forever() except KeyboardInterrupt: LOGGER.info("AMC server interrupted; shutting down") except Exception: LOGGER.exception("AMC server crashed") raise finally: pid_file.unlink(missing_ok=True) server.server_close() LOGGER.info("AMC server stopped")