ShopTRAINING/restart_api.py
2025-07-02 11:05:23 +08:00

55 lines
1.8 KiB
Python

#!/usr/bin/env python3
"""
重启API服务器以应用代码更改
"""
import subprocess
import time
import os
import signal
def restart_api():
print("正在重启API服务器...")
try:
# 启动新的API服务器
print("启动API服务器...")
cmd = ["uv", "run", "./server/api.py"]
# 在Windows上后台启动
if os.name == 'nt':
process = subprocess.Popen(cmd,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
creationflags=subprocess.CREATE_NEW_CONSOLE)
else:
process = subprocess.Popen(cmd,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
# 等待一段时间让服务器启动
time.sleep(3)
# 检查进程状态
if process.poll() is None:
print(f"✓ API服务器已启动 (PID: {process.pid})")
print("服务器地址: http://localhost:5000")
print("可以通过浏览器或前端访问API")
# 测试API是否响应
try:
import urllib.request
with urllib.request.urlopen('http://localhost:5000/api/models') as response:
print(f"✓ API测试成功 (状态码: {response.status})")
except Exception as e:
print(f"API测试失败: {e}")
else:
stdout, stderr = process.communicate()
print(f"✗ API服务器启动失败")
print(f"错误信息: {stderr.decode('utf-8', errors='ignore')}")
except Exception as e:
print(f"重启失败: {e}")
if __name__ == "__main__":
restart_api()