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

54 lines
1.4 KiB
Python
Executable File

#!/usr/bin/env python3
"""重启RPC服务,解决端口占用问题"""
import psutil
import time
import subprocess
import sys
print("🔍 查找占用8008端口的进程...")
found = False
for conn in psutil.net_connections():
try:
if conn.laddr.port == 8008 and conn.status == psutil.CONN_LISTEN:
pid = conn.pid
print(f"✅ 找到占用端口8008的进程: PID {pid}")
try:
p = psutil.Process(pid)
p.terminate()
print(f"✅ 已终止进程 {pid}")
found = True
except Exception as e:
print(f"❌ 终止进程 {pid} 失败: {e}")
except Exception:
pass
if not found:
print("✅ 没有找到占用8008端口的进程")
time.sleep(3)
print("\n🚀 启动RPC服务...")
cmd = ["python", "/app/final_rpc_correct.py"]
proc = subprocess.Popen(cmd, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
print(f"✅ 启动进程: PID {proc.pid}")
time.sleep(3)
print("\n🔍 验证端口监听...")
started = False
for conn in psutil.net_connections():
try:
if conn.laddr.port == 8008 and conn.status == psutil.CONN_LISTEN:
print(f"✅ 端口8008已经监听,PID {conn.pid}")
started = True
except Exception:
pass
if started:
print("\n🎉 RPC服务启动成功!")
sys.exit(0)
else:
print("\n❌ RPC服务启动失败!端口8008没有监听")
sys.exit(1)