73 lines
2.0 KiB
Python
73 lines
2.0 KiB
Python
import subprocess
|
|
import time
|
|
import sys
|
|
import os
|
|
|
|
def start_server():
|
|
"""Start the LightRAG server in a subprocess"""
|
|
print("Starting LightRAG server...")
|
|
|
|
# Kill any existing server on port 3015
|
|
try:
|
|
subprocess.run(["taskkill", "/F", "/IM", "python.exe"], capture_output=True)
|
|
except:
|
|
pass
|
|
|
|
# Start the server
|
|
cmd = [sys.executable, "start_server_fixed.py"]
|
|
process = subprocess.Popen(
|
|
cmd,
|
|
stdout=subprocess.PIPE,
|
|
stderr=subprocess.STDOUT,
|
|
text=True,
|
|
encoding='utf-8',
|
|
bufsize=1,
|
|
universal_newlines=True
|
|
)
|
|
|
|
# Wait a bit for server to start
|
|
time.sleep(3)
|
|
|
|
# Check if process is still running
|
|
if process.poll() is not None:
|
|
print("Server process exited!")
|
|
# Read output
|
|
output, _ = process.communicate()
|
|
print("Server output:")
|
|
print(output[:1000]) # Print first 1000 chars
|
|
return False, process
|
|
|
|
print("Server appears to be running")
|
|
return True, process
|
|
|
|
def check_server_health():
|
|
"""Check if server is responding"""
|
|
import requests
|
|
try:
|
|
response = requests.get("http://localhost:3015/health", timeout=5)
|
|
print(f"Server health check: {response.status_code}")
|
|
print(f"Response: {response.text[:500]}")
|
|
return response.status_code == 200
|
|
except Exception as e:
|
|
print(f"Health check failed: {e}")
|
|
return False
|
|
|
|
if __name__ == "__main__":
|
|
print("Testing server startup...")
|
|
success, process = start_server()
|
|
|
|
if success:
|
|
print("Server started successfully, checking health...")
|
|
time.sleep(2)
|
|
if check_server_health():
|
|
print("✓ Server is fully operational!")
|
|
else:
|
|
print("✗ Server started but health check failed")
|
|
else:
|
|
print("✗ Server failed to start")
|
|
|
|
# Clean up
|
|
if process and process.poll() is None:
|
|
print("Terminating server process...")
|
|
process.terminate()
|
|
process.wait() |