36 lines
1.1 KiB
Bash
Executable File
36 lines
1.1 KiB
Bash
Executable File
#!/bin/bash
|
|
# 随身助手后端启动脚本
|
|
cd "$(dirname "$0")"
|
|
mkdir -p logs data
|
|
|
|
# 优先使用 openclaw conda 环境(含 fastapi 等依赖)
|
|
PYTHON_BIN=""
|
|
for cand in /home/hz1/miniconda3/envs/openclaw/bin/python3 /home/openclaw/miniconda3/envs/openclaw/bin/python3 python3; do
|
|
if command -v "$cand" >/dev/null 2>&1 && "$cand" -c "import fastapi, sqlalchemy, openai" 2>/dev/null; then
|
|
PYTHON_BIN="$cand"
|
|
break
|
|
fi
|
|
done
|
|
|
|
if [ -z "$PYTHON_BIN" ]; then
|
|
echo "未找到可用 Python(需要 fastapi/sqlalchemy/openai),请先 pip install -r requirements.txt"
|
|
exit 1
|
|
fi
|
|
|
|
PORT="${PORT:-16080}"
|
|
case "$1" in
|
|
stop)
|
|
[ -f logs/app.pid ] && kill "$(cat logs/app.pid)" 2>/dev/null && rm -f logs/app.pid
|
|
echo "已停止"
|
|
;;
|
|
restart)
|
|
"$0" stop; sleep 1; exec "$0"
|
|
;;
|
|
*)
|
|
nohup "$PYTHON_BIN" -m uvicorn app.main:app --host 0.0.0.0 --port "$PORT" \
|
|
> logs/app.log 2>&1 &
|
|
echo $! > logs/app.pid
|
|
echo "随身助手后端已启动: http://0.0.0.0:$PORT (PID $(cat logs/app.pid))"
|
|
;;
|
|
esac
|