Files
wechatAiclaw/start.sh
2026-03-15 17:59:56 +08:00

32 lines
1.1 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env sh
# 不 set -e避免任一进程启动失败时直接退出导致容器无服务
PORT="${PORT:-3000}"
BACKEND_PORT="${BACKEND_PORT:-8000}"
# 先启前端再启后端,保证至少前端能绑定端口;任一退出不杀另一个
echo "Starting Node static frontend on 0.0.0.0:${PORT}..."
HOST=0.0.0.0 PORT="${PORT}" BACKEND_PORT="${BACKEND_PORT}" node dist/server.js &
FRONTEND_PID=$!
echo "Starting FastAPI backend on 0.0.0.0:${BACKEND_PORT}..."
uvicorn backend.main:app --host 0.0.0.0 --port "${BACKEND_PORT}" &
BACKEND_PID=$!
sleep 2
if ! kill -0 "${FRONTEND_PID}" 2>/dev/null; then
echo "WARN: frontend (node) exited, check logs (e.g. node dist/server.js)"
fi
if ! kill -0 "${BACKEND_PID}" 2>/dev/null; then
echo "WARN: backend (uvicorn) exited, check logs"
fi
trap 'echo "Stopping services..."; kill ${BACKEND_PID} ${FRONTEND_PID} 2>/dev/null || true' INT TERM
# 两进程都退出才结束,避免一个崩了把另一个也杀掉
while kill -0 "${FRONTEND_PID}" 2>/dev/null || kill -0 "${BACKEND_PID}" 2>/dev/null; do
wait -n "${FRONTEND_PID}" "${BACKEND_PID}" 2>/dev/null || true
sleep 1
done