91 lines
2.0 KiB
Bash
91 lines
2.0 KiB
Bash
#!/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" |