Files
jiebanke/backend/scripts/start-server.sh

91 lines
2.0 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# 结伴客后端服务器启动脚本
# 适用于CentOS生产环境
# 服务器目录: /data/nodejsjiebanke/
set -e
# 配置参数
APP_NAME="jiebanke-backend"
APP_DIR="/data/nodejsjiebanke"
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"