#!/usr/bin/env python3 import subprocess import signal import sys import logging logging.basicConfig(level=logging.INFO) logger = logging.getLogger(__name__) class ServiceManager: def __init__(self): self.process = None def run_streamlit(self): logger.info("🖥️ 启动 Streamlit...") cmd = [ "streamlit", "run", "src/app.py", "--server.port=8501", "--server.address=0.0.0.0", "--server.enableCORS=false", "--server.enableXsrfProtection=false", ] self.process = subprocess.Popen(cmd) logger.info("✅ Streamlit 已启动") def stop(self, *args): logger.info("🛑 关闭服务...") if self.process: self.process.terminate() sys.exit(0) def run(self): signal.signal(signal.SIGINT, self.stop) signal.signal(signal.SIGTERM, self.stop) self.run_streamlit() self.process.wait() if __name__ == "__main__": ServiceManager().run()