From d7c7c0840729c63e7af309c86404ea29365325c9 Mon Sep 17 00:00:00 2001 From: hz4th_coder Date: Wed, 19 Aug 2026 16:39:45 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20keepalive=20=E4=BF=9D=E6=B4=BB=E8=84=9A?= =?UTF-8?q?=E6=9C=AC=E6=94=B9=E7=94=A8=20node=20=E7=BB=9D=E5=AF=B9?= =?UTF-8?q?=E8=B7=AF=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit cron 环境 PATH 不含 nvm 目录,nohup node 找不到命令导致服务一直拉不起来 (HTTP=000)。改用 $HOME/.nvm/.../bin/node 绝对路径,模拟 cron 最小环境 验证可正常拉起。 --- keepalive.sh | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/keepalive.sh b/keepalive.sh index 002f3d4..c06ffa2 100755 --- a/keepalive.sh +++ b/keepalive.sh @@ -6,6 +6,12 @@ PORT=16016 APP_DIR="/home/openclaw/.openclaw/workspace-hz4th_coder/works/data-chart-tool" LOG_FILE="$APP_DIR/logs/server.log" +# node 绝对路径(cron 环境 PATH 不含 nvm,必须用全路径) +NODE_BIN="$HOME/.nvm/versions/node/v24.15.0/bin/node" +if [ ! -x "$NODE_BIN" ]; then + NODE_BIN="$(command -v node 2>/dev/null)" +fi + # 检查端口是否被占用 if ss -tlnp | grep -q ":$PORT "; then # 检查是不是 node 进程 @@ -28,9 +34,13 @@ if ss -tlnp | grep -q ":$PORT "; then fi # 启动 node 服务 +if [ -z "$NODE_BIN" ] || [ ! -x "$NODE_BIN" ]; then + echo "[$(date)] ERROR: node 未找到,无法启动" + exit 1 +fi echo "[$(date)] Starting data-chart-tool..." cd "$APP_DIR" -nohup node server.js >> "$LOG_FILE" 2>&1 & +nohup "$NODE_BIN" server.js >> "$LOG_FILE" 2>&1 & echo "[$(date)] Started with PID $!" # 等待启动