Files
sanguo_vnpy/archive/2026-04-29-cleanup/scripts/utils/force_restart_services.py
T
2026-04-29 20:15:43 +08:00

78 lines
2.8 KiB
Python
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env python3
"""
强制重启所有服务,确保加载最新代码
"""
import subprocess
import sys
import time
def main():
print("🚀 强制重启所有服务,加载最新修正代码")
print("="*60)
# 杀死所有python进程
print("🔪 杀死所有旧进程...")
cmd = '''ssh admin@192.168.2.154 "export PATH=\\$PATH:/var/packages/Docker/target/usr/bin && docker exec sanguo_vnpy python3 -c '
import os
import signal
for proc in os.listdir("/proc"):
if proc.isdigit():
try:
cmdline = open(f"/proc/{proc}/cmdline").read()
if "test_server" in cmdline or "python" in cmdline and ("zmq" in cmdline or "8003" in cmdline):
print(f"Killing {proc}: {cmdline[:60]}")
os.kill(int(proc), signal.SIGKILL)
except:
pass
'
'''
subprocess.run(cmd, shell=True)
time.sleep(3)
# 启动RPC服务
print("\\n🚀 启动RPC服务(修正后版本)...")
cmd = '''ssh admin@192.168.2.154 "export PATH=\\$PATH:/var/packages/Docker/target/usr/bin && docker exec sanguo_vnpy bash -c 'cd /app/scripts && python3 test_server_final_correct.py &'"'''
subprocess.run(cmd, shell=True)
time.sleep(3)
# 检查RPC是否启动
print("\\n🔍 检查RPC是否启动...")
cmd = '''ssh admin@192.168.2.154 "export PATH=\\$PATH:/var/packages/Docker/target/usr/bin && docker exec sanguo_vnpy python3 -c '
import psutil
for conn in psutil.net_connections():
if conn.laddr.port == 8003:
print(f"✅ RPC running on port 8003, pid={conn.pid}")
'
'''
subprocess.run(cmd, shell=True)
# 启动API服务
print("\\n🚀 启动API服务(端口8090...")
cmd = '''ssh admin@192.168.2.154 "export PATH=\\$PATH:/var/packages/Docker/target/usr/bin && docker exec sanguo_vnpy bash -c 'cd /app/scripts && python3 -m uvicorn backtest_api_final_correct_8090:app --host 0.0.0.0 --port 8090 &'"'''
subprocess.run(cmd, shell=True)
time.sleep(3)
# 检查API是否启动
print("\\n🔍 检查API是否启动...")
cmd = '''ssh admin@192.168.2.154 "export PATH=\\$PATH:/var/packages/Docker/target/usr/bin && docker exec sanguo_vnpy python3 -c '
import psutil
for conn in psutil.net_connections():
if conn.laddr.port == 8090:
print(f"✅ API running on port 8090, pid={conn.pid}")
'
'''
subprocess.run(cmd, shell=True)
print("\\n" + "="*60)
print("✅ 强制重启完成!")
print("最终确认代码:")
print(" backtester_engine = BacktesterEngine(main_engine, event_engine)")
print(" main_engine.add_app(backtester_engine)")
print("="*60)
print("\\n🎯 API地址: http://192.168.2.154:8090/api/backtest/run")
print("可以开始测试了!")
if __name__ == "__main__":
main()