Files
stt/run.sh
dosangyoon a984b86766 run.sh: avoid global LD_LIBRARY_PATH; pass conda lib only to uvicorn
Prevents bash/libtinfo 'no version information available' when conda ncurses
shadows system libtinfo. Document env -u LD_LIBRARY_PATH fallback.

Made-with: Cursor
2026-03-23 13:40:52 +09:00

38 lines
1.3 KiB
Bash
Executable File

#!/usr/bin/env bash
# libtinfo 경고: 터미널에 이미 conda가 켜져 LD_LIBRARY_PATH가 잡혀 있으면
# env -u LD_LIBRARY_PATH ./run.sh
# 로 실행해 보세요.
set -euo pipefail
if [[ -z "${BASH_VERSION:-}" ]]; then
echo "ERROR: bash로 실행하세요. 예) ./run.sh 또는 bash run.sh" >&2
exit 1
fi
cd /home/dsyoon/workspace/stt
CONDA_BASE="/home/dsyoon/workspace/miniconda3"
source "${CONDA_BASE}/bin/activate" ncue
# 전역 LD_LIBRARY_PATH에 conda lib를 넣으면, 같은 터미널의 bash가 conda의
# libtinfo.so 를 물며 «no version information available» 경고가 날 수 있음.
# torch/ctranslate2 등은 uvicorn 자식 프로세스에만 경로를 넘긴다.
PORT="${PORT:-8025}"
RELOAD="${RELOAD:-0}"
if lsof -ti tcp:"${PORT}" >/dev/null 2>&1; then
echo "Stopping existing server on port ${PORT}..."
lsof -ti tcp:"${PORT}" | xargs -r kill -9
sleep 1
fi
UVICORN_ARGS=("--host" "127.0.0.1" "--port" "${PORT}")
if [[ "${RELOAD}" == "1" ]]; then
UVICORN_ARGS+=("--reload")
fi
echo "Starting uvicorn on 127.0.0.1:${PORT} (reload=${RELOAD})"
nohup env LD_LIBRARY_PATH="${CONDA_PREFIX}/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" \
uvicorn app.main:app "${UVICORN_ARGS[@]}" > server.log 2>&1 &
echo "Server started (PID: $!). Logs: server.log"