删除http健康检查和应用进程检查
This commit is contained in:
parent
6168a488fa
commit
5aba427a08
@ -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配置
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user