start.sh
821 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#!/bin/bash
# LemonACP — 启动脚本
set -e
# 加载 .env
if [ -f .env ]; then
set -a; source .env; set +a
fi
# 确保 nvm 可用
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
# 检查依赖
if [ ! -d "node_modules" ]; then
echo "未安装依赖,请先运行: npm install"
exit 1
fi
# 清理端口冲突
PORT=${PORT:-3010}
PID=$(lsof -ti:$PORT 2>/dev/null || true)
if [ -n "$PID" ]; then
echo "端口 $PORT 被占用 (PID: $PID),正在释放..."
kill -9 $PID 2>/dev/null || true
sleep 0.3
fi
echo "LemonACP 启动中 (端口 $PORT)..."
node server/index.js &
SERVER_PID=$!
sleep 1
echo "就绪: http://localhost:$PORT"
echo "健康检查: http://localhost:$PORT/api/health"
echo "按 Ctrl+C 停止"
trap "kill $SERVER_PID 2>/dev/null; exit 0" SIGINT SIGTERM
wait