优化pm2安装顺序

This commit is contained in:
jingrow 2025-08-08 07:04:00 +08:00
parent 2353545280
commit a0fd4e5bc4

View File

@ -776,7 +776,14 @@ start_project_with_pm2() {
pm2 list | grep -w '$SITE_NAME' | wc -l
")
if [ "$PM2_STATUS" != "0" ] && [ -n "$PM2_STATUS" ]; then
# 检查项目是否真的在运行状态为online
PM2_RUNNING=$(su - jingrow -c "
export NVM_DIR=\"\$HOME/.nvm\"
[ -s \"\$NVM_DIR/nvm.sh\" ] && \. \"\$NVM_DIR/nvm.sh\"
pm2 list | grep -w '$SITE_NAME' | grep -c 'online' || echo '0'
")
if [ "$PM2_STATUS" != "0" ] && [ -n "$PM2_STATUS" ] && [ "$PM2_RUNNING" != "0" ]; then
if [ "$FORCE_UPDATE" = true ]; then
log_warning "项目已在PM2中运行重新启动..."
su - jingrow -c "
@ -798,20 +805,20 @@ start_project_with_pm2() {
fi
else
log_warning "项目已在PM2中运行跳过启动"
# 即使跳过启动,也要检查现有进程是否正常运行
PM2_RUNNING=$(su - jingrow -c "
export NVM_DIR=\"\$HOME/.nvm\"
[ -s \"\$NVM_DIR/nvm.sh\" ] && \. \"\$NVM_DIR/nvm.sh\"
pm2 list | grep -w '$SITE_NAME' | grep -c 'online' || echo '0'
")
if [ "$PM2_RUNNING" = "0" ]; then
log_error "现有PM2进程未正常运行需要重新启动"
return 1
fi
log_success "现有PM2进程运行正常"
return 0
fi
else
# 如果项目存在但不在运行状态,先删除再重新启动
if [ "$PM2_STATUS" != "0" ] && [ -n "$PM2_STATUS" ]; then
log_warning "项目存在于PM2中但未正常运行重新启动..."
su - jingrow -c "
export NVM_DIR=\"\$HOME/.nvm\"
[ -s \"\$NVM_DIR/nvm.sh\" ] && \. \"\$NVM_DIR/nvm.sh\"
pm2 delete $SITE_NAME 2>/dev/null || true
"
fi
log_info "启动新项目..."
su - jingrow -c "
export NVM_DIR=\"\$HOME/.nvm\"
@ -1298,12 +1305,6 @@ main() {
install_nodejs
if [ "$SKIP_PM2" = false ]; then
install_pm2
else
log_warning "跳过PM2安装"
fi
if ! clone_jsite_project; then
log_error "项目克隆失败,部署终止"
exit 1
@ -1320,7 +1321,10 @@ main() {
log_warning "跳过项目依赖安装"
fi
# PM2安装和项目启动在项目准备完成后
if [ "$SKIP_PM2" = false ]; then
log_info "开始PM2安装和项目启动..."
install_pm2
create_pm2_config
if ! start_project_with_pm2; then
log_error "PM2启动失败部署终止"
@ -1332,7 +1336,7 @@ main() {
exit 1
fi
else
log_warning "跳过PM2配置和启动"
log_warning "跳过PM2安装和项目启动"
fi
if [ "$SKIP_TRAEFIK" = false ]; then