fix: 修复后端端口更换时脚本异常退出的问题
问题描述: - 部署时后端端口被占用,用户更换其他端口后脚本异常退出 - 根因: health_check()函数中netstat命令失败时触发set -e导致脚本退出 修复内容: 1. 端口检查添加错误抑制 (2>/dev/null) 2. 添加ss命令作为netstat的fallback 3. Nginx状态检查直接通过目录检测BT Panel环境 4. 修复变量作用域问题 (IS_BT_PANEL仅在局部函数中定义) 技术细节: - netstat -tunlp 2>/dev/null || ss -tunlp 2>/dev/null - 使用 [[ -d /www/server/nginx ]] 直接检测宝塔面板 - 宝塔环境使用pgrep检查nginx进程 - 标准环境使用systemctl is-active检查 影响范围: - health_check() 函数 (install.sh:2588-2612) - 提升脚本在端口冲突场景下的健壮性 - 兼容宝塔面板和标准Nginx环境
This commit is contained in:
13
install.sh
13
install.sh
@@ -2585,7 +2585,7 @@ health_check() {
|
||||
fi
|
||||
|
||||
# 检查端口
|
||||
if netstat -tunlp | grep -q ":${BACKEND_PORT}"; then
|
||||
if netstat -tunlp 2>/dev/null | grep -q ":${BACKEND_PORT}" || ss -tunlp 2>/dev/null | grep -q ":${BACKEND_PORT}"; then
|
||||
print_success "后端端口监听正常 (${BACKEND_PORT})"
|
||||
else
|
||||
print_error "后端端口监听异常"
|
||||
@@ -2593,12 +2593,23 @@ health_check() {
|
||||
fi
|
||||
|
||||
# 检查Nginx
|
||||
if [[ -d /www/server/nginx ]]; then
|
||||
# 宝塔面板:检查进程
|
||||
if pgrep -x nginx > /dev/null; then
|
||||
print_success "Nginx服务运行正常"
|
||||
else
|
||||
print_error "Nginx服务异常"
|
||||
return 1
|
||||
fi
|
||||
else
|
||||
# 标准Nginx:使用systemctl检查
|
||||
if systemctl is-active --quiet nginx; then
|
||||
print_success "Nginx服务运行正常"
|
||||
else
|
||||
print_error "Nginx服务异常"
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# 检查数据库
|
||||
if [[ -f "${PROJECT_DIR}/backend/ftp-manager.db" ]]; then
|
||||
|
||||
Reference in New Issue
Block a user