#!/bin/bash # 结伴客后端服务器启动脚本 # 适用于CentOS生产环境 # 服务器目录: /data/nodejsjiebanke/ set -e # 配置参数 APP_NAME="jiebanke-backend" APP_DIR="/data/nodejs/jiebanke" PORT="3310" LOG_DIR="$APP_DIR/logs" cd "$APP_DIR" echo "🚀 开始启动 $APP_NAME 服务..." echo "📋 工作目录: $APP_DIR" echo "🔌 服务端口: $PORT" echo "📊 日志目录: $LOG_DIR" echo "" # 创建日志目录 if [ ! -d "$LOG_DIR" ]; then mkdir -p "$LOG_DIR" echo "✅ 创建日志目录: $LOG_DIR" fi # 检查Node.js环境 echo "🔍 检查Node.js环境..." if ! command -v node &> /dev/null; then echo "❌ Node.js未安装,请先安装Node.js" exit 1 fi if ! command -v npm &> /dev/null; then echo "❌ npm未安装,请先安装npm" exit 1 fi if ! command -v pm2 &> /dev/null; then echo "❌ pm2未安装,正在安装pm2..." npm install -g pm2 echo "✅ pm2安装完成" fi echo "✅ Node.js版本: $(node -v)" echo "✅ npm版本: $(npm -v)" echo "✅ pm2版本: $(pm2 -v)" # 安装依赖 echo "" echo "📦 安装项目依赖..." npm install --production # 停止现有服务(如果存在) echo "" echo "🛑 停止现有服务..." pm2 delete "$APP_NAME" 2>/dev/null || true pm2 flush "$APP_NAME" 2>/dev/null || true # 启动服务 echo "" echo "🚀 启动服务..." NODE_ENV=production PORT=$PORT pm2 start ecosystem.config.js --name "$APP_NAME" # 保存pm2配置 echo "" echo "💾 保存pm2配置..." pm2 save # 设置开机自启 echo "" echo "🔧 设置开机自启..." pm2 startup 2>/dev/null || echo "⚠️ 开机自启设置可能需要手动执行: pm2 startup" # 显示服务状态 echo "" echo "📊 服务状态:" pm2 status "$APP_NAME" echo "" echo "✅ $APP_NAME 服务启动成功!" echo "🌐 服务地址: http://localhost:$PORT" echo "📋 启动时间: $(date)" echo "" echo "💡 常用命令:" echo " 查看日志: pm2 logs $APP_NAME" echo " 重启服务: pm2 restart $APP_NAME" echo " 停止服务: pm2 stop $APP_NAME" echo " 服务状态: pm2 status"