36 lines
998 B
Python
36 lines
998 B
Python
#!/usr/bin/env python3
|
|
"""Kill existing backend process on port 8010 and restart."""
|
|
import os
|
|
import sys
|
|
import signal
|
|
import subprocess
|
|
import time
|
|
|
|
# Find and kill existing process on port 8010
|
|
try:
|
|
import psutil
|
|
except ImportError:
|
|
# Use subprocess to find process
|
|
result = subprocess.run(
|
|
["lsof", "-i", ":8010", "-t"],
|
|
capture_output=True, text=True
|
|
)
|
|
pids = result.stdout.strip().split("\n")
|
|
for pid in pids:
|
|
if pid:
|
|
pid = int(pid.strip())
|
|
print(f"Killing PID {pid} on port 8010")
|
|
os.kill(pid, signal.SIGTERM)
|
|
time.sleep(1)
|
|
except Exception as e:
|
|
print(f"Could not kill existing process: {e}")
|
|
|
|
# Restart
|
|
os.chdir("/root/cma-management/backend")
|
|
cmd = "nohup uvicorn app.main:app --host 0.0.0.0 --port 8010 > /var/log/cma-backend.log 2>&1 &"
|
|
print(f"Restarting: {cmd}")
|
|
subprocess.run(cmd, shell=True)
|
|
time.sleep(3)
|
|
print("Done. Checking process...")
|
|
subprocess.run(["lsof", "-i", ":8010"])
|