修复端口号重复的问题

This commit is contained in:
jingrow 2025-08-15 21:41:24 +08:00
parent ec563f8331
commit 986d3e2f66

View File

@ -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 自动启动配置完成"