mirror of
https://github.com/meta-llama/llama-stack.git
synced 2025-07-29 07:14:20 +00:00
test: terminate server process when finished
# What does this PR do? ## Test Plan
This commit is contained in:
parent
780b4c6eea
commit
982442d584
1 changed files with 10 additions and 4 deletions
|
@ -6,6 +6,7 @@
|
|||
|
||||
import inspect
|
||||
import os
|
||||
import signal
|
||||
import socket
|
||||
import subprocess
|
||||
import tempfile
|
||||
|
@ -45,6 +46,8 @@ def start_llama_stack_server(config_name: str) -> subprocess.Popen:
|
|||
stderr=subprocess.PIPE, # keep stderr to see errors
|
||||
text=True,
|
||||
env={**os.environ, "LLAMA_STACK_LOG_FILE": "server.log"},
|
||||
# Create new process group so we can kill all child processes
|
||||
preexec_fn=os.setsid,
|
||||
)
|
||||
return process
|
||||
|
||||
|
@ -267,14 +270,17 @@ def cleanup_server_process(request):
|
|||
print(f"Server process already terminated with return code: {server_process.returncode}")
|
||||
return
|
||||
try:
|
||||
server_process.terminate()
|
||||
print(f"Terminating process {server_process.pid} and its group...")
|
||||
# Kill the entire process group
|
||||
os.killpg(os.getpgid(server_process.pid), signal.SIGTERM)
|
||||
server_process.wait(timeout=10)
|
||||
print("Server process terminated gracefully")
|
||||
print("Server process and children terminated gracefully")
|
||||
except subprocess.TimeoutExpired:
|
||||
print("Server process did not terminate gracefully, killing it")
|
||||
server_process.kill()
|
||||
# Force kill the entire process group
|
||||
os.killpg(os.getpgid(server_process.pid), signal.SIGKILL)
|
||||
server_process.wait()
|
||||
print("Server process killed")
|
||||
print("Server process and children killed")
|
||||
except Exception as e:
|
||||
print(f"Error during server cleanup: {e}")
|
||||
else:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue