当前位置: 首页 > news >正文

部署springBoot项目的脚本-linux

重启 restart.sh

#!/bin/bash# 定义变量
JAR_NAME="xxx.jar"
LOG_DIR="logs/xxx"# 创建日志目录
mkdir -p "$LOG_DIR"# 查找占用端口的进程ID
PID=$(ps --no-heading -C java -f --width 1000 | grep $JAR_NAME | awk '{print $2}')echo "PID: ${PID:-未找到}"echo "Restarting service..."# 停止进程
if [ -n "$PID" ]; thenecho "Stopping existing process (PID: $PID)..."kill -9 "$PID" > /dev/null 2>&1
fi# 等待2秒
sleep 2# 启动新进程
echo "Starting application..."
nohup java -jar "$JAR_NAME" >> "$LOG_DIR/app.log" 2>&1 &# 检查是否启动成功
if [ $? -eq 0 ]; thenecho "Application started successfully"echo "PID: $!"
elseecho "Failed to start application"exit 1
fi# 保持终端不退出
read -p "Press any key to continue..." -n1 -s

停止 stop.sh

#!/bin/bashJAR_NAME="xxx.jar"# 获取监听该端口的进程PID
PID=$(ps --no-heading -C java -f --width 1000 | grep $JAR_NAME | awk '{print $2}')echo "PID: ${PID:-未找到}"if [ -z "$PID" ]; thenecho "PID not found. Server may not be running."
elseecho "Stopping existing process (PID: $PID)..."kill -9 "$PID" > /dev/null 2>&1# 检查是否成功if [ $? -eq 0 ]; thenecho "Stop Success!"elseecho "Failed to stop the server."fi
firead -p "Press any key to continue..." -n1 -s

说明,maven打包时,可以将脚本打包跟jar包在同一个目录

   <fileSet><directory>bin/linux</directory><includes><include>restart.sh</include><include>stop.sh</include></includes><outputDirectory>/</outputDirectory></fileSet>
http://www.dtcms.com/a/201201.html

相关文章:

  • 【MYSQL】基本查询,表的增删查改
  • 树莓派系列教程第八弹:结合 ESP32-CAM 实现远程摄像头监控
  • Effective C++阅读笔记(item 1-4)
  • 【Vue】路由2——编程式路由导航、 两个新的生命周期钩子 以及 路由守卫、路由器的两种工作模式
  • 网络工程师案例分析
  • 【Android】一键创建Keystore + Keystore 参数说明 + 查询SHA256(JDK Keytool Keystore)
  • 从 “龟速” 到流畅,英国 - 中国 SD-WAN 专线让分公司直连总部系统
  • js逆向反调试的基本 bypass
  • 智慧招生:实时数字人在院校招生中的应用
  • 深度学习实战107-基于Qwen3+GraphRAG+Agent的智能文档管理系统:精准问答与决策支持
  • 【OSS】如何使用OSS提供的图片压缩服务
  • 大二周周练翻译
  • 动态规划-LCR 089.打家劫舍-力扣(LeetCode)
  • 多类别异常检测新SOTA-MVMCAD
  • 如何通过生成式人工智能认证(GAI认证)提升自己的技能水平?
  • 中小实验室质检LIMS 系统选型 从成本管控到竞争力升级的黄金法则
  • Mybatis操作数据库(2)
  • [学习]POSIX消息队列的原理与案例分析(完整示例代码)
  • 基于DolphinScheduler抽取通用EventBus组件:支持延迟与事件驱动
  • Ubuntu开机自启服务
  • 关于systemverilog中在task中使用force语句的注意事项
  • 第三十八节:视频处理-视频保存
  • 线程调度与单例模式:wait、notify与懒汉模式解析
  • 麦克风与扬声器的关键区别 [特殊字符]
  • SpringBoot+ELK 搭建日志监控平台
  • 前端 vue + element-ui 框架从 0 - 1 搭建
  • Spring Cloud Seata 快速入门及生产实战指南
  • antd树结构
  • 阻塞队列:线程安全与生产者消费者模型解析
  • OSPF路由撤销及优化