48 lines
1.1 KiB
Bash
48 lines
1.1 KiB
Bash
#!/bin/bash
|
|
# vLLM Server Stop Script for DGX Spark
|
|
|
|
# Determine installation directory (where this script is located)
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
|
|
PID_FILE="$SCRIPT_DIR/.vllm-server.pid"
|
|
|
|
if [ ! -f "$PID_FILE" ]; then
|
|
echo "No vLLM server PID file found. Server may not be running."
|
|
exit 0
|
|
fi
|
|
|
|
PID=$(cat "$PID_FILE")
|
|
|
|
if ! ps -p $PID > /dev/null 2>&1; then
|
|
echo "vLLM server (PID: $PID) is not running. Cleaning up PID file."
|
|
rm -f "$PID_FILE"
|
|
exit 0
|
|
fi
|
|
|
|
echo "Stopping vLLM server (PID: $PID)..."
|
|
kill $PID
|
|
|
|
# Wait for process to terminate
|
|
for i in {1..10}; do
|
|
if ! ps -p $PID > /dev/null 2>&1; then
|
|
echo "OK: Server stopped successfully"
|
|
rm -f "$PID_FILE"
|
|
exit 0
|
|
fi
|
|
sleep 1
|
|
done
|
|
|
|
# Force kill if still running
|
|
if ps -p $PID > /dev/null 2>&1; then
|
|
echo "Server did not stop gracefully. Force killing..."
|
|
kill -9 $PID
|
|
sleep 1
|
|
if ! ps -p $PID > /dev/null 2>&1; then
|
|
echo "OK: Server force stopped"
|
|
rm -f "$PID_FILE"
|
|
else
|
|
echo "ERROR: Failed to stop server"
|
|
exit 1
|
|
fi
|
|
fi
|