删除http健康检查和应用进程检查

This commit is contained in:
jingrow 2025-08-08 07:28:20 +08:00
parent 6168a488fa
commit 5aba427a08

View File

@ -894,7 +894,7 @@ start_project_with_pm2() {
# 等待应用完全启动
sleep 3
# 1. 检查端口是否被监听(使用多种方法)
# 检查端口是否被监听(使用多种方法)
log_info "检查端口 $project_port 是否被监听..."
local port_check=0
local max_port_checks=10
@ -940,36 +940,8 @@ start_project_with_pm2() {
log_success "端口 $project_port 已被监听"
# 2. HTTP健康检查如果应用支持
log_info "执行HTTP健康检查..."
local health_check_success=false
local health_check_attempts=0
local max_health_checks=5
# 获取本地IP地址
local local_ip=$(get_optimal_host_ip)
while [ $health_check_attempts -lt $max_health_checks ] && [ "$health_check_success" = false ]; do
# 尝试HTTP健康检查
local http_response=$(curl -s -o /dev/null -w "%{http_code}" --connect-timeout 5 --max-time 10 "http://$local_ip:$project_port/" 2>/dev/null || echo "000")
if [ "$http_response" = "200" ] || [ "$http_response" = "302" ] || [ "$http_response" = "404" ]; then
health_check_success=true
log_success "HTTP健康检查通过 (状态码: $http_response)"
else
health_check_attempts=$((health_check_attempts + 1))
log_info "HTTP健康检查失败 (状态码: $http_response),重试 ${health_check_attempts}/${max_health_checks}"
sleep 2
fi
done
# 如果HTTP健康检查失败但端口已监听仍然认为启动成功
if [ "$health_check_success" = false ]; then
log_warning "HTTP健康检查失败但端口已监听认为启动成功"
fi
# 3. 检查PM2进程状态和资源使用情况
log_info "检查PM2进程状态和资源使用情况..."
# 检查PM2进程状态
log_info "检查PM2进程状态..."
local pm2_status=$(su - jingrow -c "
export NVM_DIR=\"\$HOME/.nvm\"
[ -s \"\$NVM_DIR/nvm.sh\" ] && \. \"\$NVM_DIR/nvm.sh\"
@ -977,32 +949,12 @@ start_project_with_pm2() {
")
if [ "$pm2_status" != "not_found" ]; then
log_success "PM2进程状态正常: $pm2_status"
log_success "PM2进程状态正常"
else
log_error "PM2进程状态异常"
return 1
fi
# 4. 检查应用是否在正常运行通过进程ID
local app_pid=$(su - jingrow -c "
export NVM_DIR=\"\$HOME/.nvm\"
[ -s \"\$NVM_DIR/nvm.sh\" ] && \. \"\$NVM_DIR/nvm.sh\"
pm2 list | grep -w '$SITE_NAME' | awk '{print \$6}' || echo '0'
")
if [ "$app_pid" != "0" ] && [ -n "$app_pid" ]; then
# 检查进程是否真的在运行
if kill -0 "$app_pid" 2>/dev/null; then
log_success "应用进程正在运行 (PID: $app_pid)"
else
log_error "应用进程不存在 (PID: $app_pid)"
return 1
fi
else
log_error "无法获取应用进程ID"
return 1
fi
log_success "项目已成功启动并监听端口 $project_port"
# 保存PM2配置