From 986d3e2f664114cbe0ee4f144206c039d387af5e Mon Sep 17 00:00:00 2001 From: jingrow Date: Fri, 15 Aug 2025 21:41:24 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=AB=AF=E5=8F=A3=E5=8F=B7?= =?UTF-8?q?=E9=87=8D=E5=A4=8D=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jsite.sh | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/jsite.sh b/jsite.sh index 88e168b..dbdce6c 100644 --- a/jsite.sh +++ b/jsite.sh @@ -616,7 +616,8 @@ install_pm2() { # 设置PM2开机自启 log_info "配置PM2开机自启..." - sudo env PATH="$PATH:/home/jingrow/.nvm/versions/node/v22.18.0/bin" pm2 startup systemd -u jingrow --hp /home/jingrow --service-name pm2-jingrow --silent + local node_path=$(ls -d /home/jingrow/.nvm/versions/node/v* 2>/dev/null | head -1) + sudo env PATH="$PATH:$node_path/bin" pm2 startup systemd -u jingrow --hp /home/jingrow --service-name pm2-jingrow --silent log_success "PM2开机自启配置完成" } @@ -731,6 +732,21 @@ get_available_port() { fi fi + # 简单修复:确保分配的端口不重复 + if [ -f "$port_file" ]; then + local used_ports="" + if command -v jq &> /dev/null; then + used_ports=$(jq -r '.[]' "$port_file" 2>/dev/null || echo "") + else + used_ports=$(grep -o ":[[:space:]]*[0-9]*" "$port_file" 2>/dev/null | cut -d: -f2 | tr -d ' ' || echo "") + fi + + # 如果端口已被使用,递增直到找到可用端口 + while echo "$used_ports" | grep -q "^$next_port$"; do + next_port=$((next_port + increment)) + done + fi + echo "$next_port" return 0 } @@ -2188,7 +2204,8 @@ autostartup_site() { # 保存PM2进程列表 log_info "保存PM2进程列表..." - sudo env PATH="$PATH:/home/jingrow/.nvm/versions/node/v22.18.0/bin" su - jingrow -c "pm2 save --silent" + local node_path=$(ls -d /home/jingrow/.nvm/versions/node/v* 2>/dev/null | head -1) + sudo env PATH="$PATH:$node_path/bin" su - jingrow -c "pm2 save --silent" log_success "PM2进程列表保存完成" log_success "网站 $SITE_NAME 自动启动配置完成"