Import ducklm runtime
This commit is contained in:
Executable
+81
@@ -0,0 +1,81 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
VENV_PYTHON="$ROOT_DIR/.venv/bin/python"
|
||||
PID_FILE="$ROOT_DIR/data/runtime/server.pid"
|
||||
LOG_FILE="$ROOT_DIR/data/runtime/server.log"
|
||||
HOST="${HOST:-127.0.0.1}"
|
||||
PORT="${PORT:-8000}"
|
||||
|
||||
mkdir -p "$ROOT_DIR/data/runtime"
|
||||
|
||||
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH:+${LD_LIBRARY_PATH}:}$ROOT_DIR/.venv/lib/python3.13/site-packages/llama_cpp/lib"
|
||||
export GGML_VULKAN=1
|
||||
|
||||
is_running() {
|
||||
if [[ -f "$PID_FILE" ]]; then
|
||||
local pid
|
||||
pid="$(cat "$PID_FILE")"
|
||||
if kill -0 "$pid" >/dev/null 2>&1; then
|
||||
return 0
|
||||
fi
|
||||
fi
|
||||
return 1
|
||||
}
|
||||
|
||||
start_server() {
|
||||
if is_running; then
|
||||
echo "Server already running with PID $(cat "$PID_FILE")"
|
||||
exit 0
|
||||
fi
|
||||
nohup "$VENV_PYTHON" -m uvicorn main:app --host "$HOST" --port "$PORT" >"$LOG_FILE" 2>&1 &
|
||||
echo $! >"$PID_FILE"
|
||||
echo "Started server on http://$HOST:$PORT with PID $(cat "$PID_FILE")"
|
||||
echo "Log: $LOG_FILE"
|
||||
}
|
||||
|
||||
stop_server() {
|
||||
if ! is_running; then
|
||||
echo "Server is not running"
|
||||
rm -f "$PID_FILE"
|
||||
exit 0
|
||||
fi
|
||||
local pid
|
||||
pid="$(cat "$PID_FILE")"
|
||||
kill "$pid"
|
||||
rm -f "$PID_FILE"
|
||||
echo "Stopped server PID $pid"
|
||||
}
|
||||
|
||||
status_server() {
|
||||
if is_running; then
|
||||
echo "Server is running with PID $(cat "$PID_FILE") on http://$HOST:$PORT"
|
||||
else
|
||||
echo "Server is not running"
|
||||
fi
|
||||
}
|
||||
|
||||
case "${1:-}" in
|
||||
start)
|
||||
start_server
|
||||
;;
|
||||
stop)
|
||||
stop_server
|
||||
;;
|
||||
restart)
|
||||
stop_server || true
|
||||
start_server
|
||||
;;
|
||||
status)
|
||||
status_server
|
||||
;;
|
||||
logs)
|
||||
touch "$LOG_FILE"
|
||||
tail -n 50 -f "$LOG_FILE"
|
||||
;;
|
||||
*)
|
||||
echo "Usage: $0 {start|stop|restart|status|logs}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
Reference in New Issue
Block a user