#!/bin/bash # Linux部署脚本 echo "开始部署LTEMvcApp到Linux..." # 检查是否安装了.NET Runtime if ! command -v dotnet &> /dev/null; then echo "错误: 未找到.NET Runtime,请先安装.NET 6.0或更高版本" echo "安装命令: sudo apt-get update && sudo apt-get install -y dotnet-runtime-6.0" exit 1 fi # 检查端口15001是否被占用 if lsof -Pi :15001 -sTCP:LISTEN -t >/dev/null ; then echo "警告: 端口15001已被占用,请先停止占用该端口的进程" echo "查看占用进程: lsof -i :15001" exit 1 fi # 创建部署目录 DEPLOY_DIR="./deploy" if [ -d "$DEPLOY_DIR" ]; then rm -rf "$DEPLOY_DIR" fi mkdir -p "$DEPLOY_DIR" # 发布应用 echo "正在发布应用..." dotnet publish -c Release -o "$DEPLOY_DIR" --self-contained false if [ $? -ne 0 ]; then echo "发布失败,请检查项目配置" exit 1 fi echo "应用发布成功到目录: $DEPLOY_DIR" # 启动应用 echo "正在启动应用..." cd "$DEPLOY_DIR" dotnet LTEMvcApp.dll & # 等待应用启动 sleep 3 # 检查应用是否成功启动 if curl -s http://localhost:15001 > /dev/null; then echo "✅ 应用启动成功!" echo "🌐 访问地址: http://localhost:15001" echo "🌐 外部访问: http://$(hostname -I | awk '{print $1}'):15001" echo "" echo "📋 常用命令:" echo " 查看日志: tail -f nohup.out" echo " 停止应用: pkill -f LTEMvcApp" echo " 查看进程: ps aux | grep LTEMvcApp" else echo "❌ 应用启动失败,请检查日志" exit 1 fi