54 lines
1.4 KiB
Python
Executable File
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)
|