- README: deactivate may not clear LD_LIBRARY_PATH; unset, /usr/bin/vi, diagnostics - scripts/env-no-ld.sh: run commands without LD_LIBRARY_PATH for vi/bash - run.sh: include in commit if changed (verify diff) Made-with: Cursor
54 lines
1.9 KiB
Bash
Executable File
54 lines
1.9 KiB
Bash
Executable File
#!/bin/sh
|
|
# conda가 LD_LIBRARY_PATH에 lib를 넣은 상태에서 bash가 스크립트를 읽으면
|
|
# 시스템 bash가 conda의 libtinfo를 물어 경고가 난다. /bin/sh로 한 번 감싼 뒤
|
|
# LD_LIBRARY_PATH 없이 bash를 다시 실행한다.
|
|
if [ -z "${STT_RUN_WITH_CLEAN_LDLIB:-}" ]; then
|
|
export STT_RUN_WITH_CLEAN_LDLIB=1
|
|
exec env -u LD_LIBRARY_PATH /bin/bash "$0" "$@"
|
|
fi
|
|
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
cd "$SCRIPT_DIR"
|
|
|
|
if [[ -z "${CONDA_BASE:-}" || ! -f "${CONDA_BASE}/bin/activate" ]]; then
|
|
CONDA_BASE=""
|
|
for cand in "${HOME}/workspace/miniconda3" "${HOME}/miniconda3" "${HOME}/anaconda3" "/opt/anaconda3"; do
|
|
if [[ -n "$cand" && -f "$cand/bin/activate" ]]; then
|
|
CONDA_BASE="$cand"
|
|
break
|
|
fi
|
|
done
|
|
fi
|
|
if [[ -z "${CONDA_BASE:-}" || ! -f "${CONDA_BASE}/bin/activate" ]]; then
|
|
echo "ERROR: conda를 찾을 수 없습니다. 예: export CONDA_BASE=/path/to/miniconda3" >&2
|
|
exit 1
|
|
fi
|
|
|
|
# 기본은 ncue (기존 동작). 다른 환경은 CONDA_ENV=stt 등으로 지정.
|
|
CONDA_ENV="${CONDA_ENV:-ncue}"
|
|
# shellcheck source=/dev/null
|
|
source "${CONDA_BASE}/bin/activate" "${CONDA_ENV}"
|
|
|
|
# 전역 LD_LIBRARY_PATH에 conda lib를 넣지 않음 (bash/libtinfo 경고 방지).
|
|
# 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"
|