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

linux服务器更新jar包脚本

【需求】Java每次发布新的版本都需要先kill掉原来的服务,然后再启动新的包  有了这个脚本只需要把包替换掉,服务会自动kill  

以8184 为例  完整的脚本如下

#!/bin/bash

# 检查端口 8184 是否被占用
PORT=8184
PID=$(lsof -t -i:$PORT)

if [ -n "$PID" ]; then
    # 如果端口被占用,杀死占用该端口的进程
    echo "Port $PORT is occupied by PID $PID. Killing the process."
    kill -9 $PID
else
    # 如果端口没有被占用
    echo "Port $PORT is not occupied. Proceeding with starting the Java service."
fi

# 执行 Java 服务
echo "Starting Java service with profile 'product'..."
java -jar admin.jar --spring.profiles.active=product &

echo "Java service started."

解释:

  1. lsof -t -i:$PORT:使用 lsof 命令检查端口 8184 是否被占用。如果被占用,lsof 会返回该进程的 PID。
  2. if [ -n "$PID" ]:检查 PID 变量是否为空。如果 PID 不为空,说明端口被占用。
  3. kill -9 $PID:强制终止占用该端口的进程。
  4. java -jar admin.jar --spring.profiles.active=product &:使用 java -jar 来后台启动 Java 服务,这样即使退出终端,服务也能继续运行。
  5. echo:用于打印日志,帮助你跟踪脚本执行状态。

使用说明:

  1. 保存脚本为一个 .sh 文件(例如 start_service.sh)。
  2. 给予执行权限:chmod +x start_service.sh
  3. 执行脚本:./start_service.sh

这个脚本会首先检查端口 8184 是否被占用,如果占用则终止进程,并重新启动 Java 服务。如果端口没有被占用,则直接启动服务。

http://www.dtcms.com/a/44337.html

相关文章:

  • 工程化与框架系列(12)--响应式框架原理
  • 2024年12月中国电子学会青少年软件编程(Python)等级考试试卷(六级)答案 + 解析
  • 数据结构课程设计(java实现)---九宫格游戏,也称幻方
  • 热点创意大师智能体
  • 传奇3光通版手游行会战攻略:团队协作与战术布局详解
  • PS通道抠图
  • 推进断裂力学:深入研究工程模拟中的 UMM
  • 10.指针进阶
  • Ragflow与Dify之我见:AI应用开发领域的开源框架对比分析
  • 清华大学Deepseek第六版AIGC发展研究3.0(共186页,附PDF下载)
  • java项目之基于ssm的学籍管理系统(源码+文档)
  • leaflet扩展插件esri-leaflet.js
  • vue3中展示markdown格式文章的三种形式
  • Solana 核心概念全解析:账户、交易、合约与租约,高流量区块链技术揭秘!
  • kan与小波,和不知所云的画图
  • 【Python】使用Python合并多个CSV文件
  • 【算法学习之路】4.简单数论(4)
  • (转)SpringBoot和SpringCloud的区别
  • 总结前端常用数据结构 之 队列篇【JavaScript 】
  • 数据库操作命令详解:CREATE、ALTER、DROP 的使用与实践
  • 探秘《矩阵之美》:解锁矩阵的无限魅力
  • 【在线用户监控】在线用户查询、强退用户
  • 7.1.1 计算机网络的组成
  • Q-Former 的设计与应用
  • (十 三)趣学设计模式 之 模版方法模式!
  • C++动态与静态转换区别详解
  • games101 作业5
  • 软件工程---净室软件工程
  • I2C驱动(九) -- i2c_adapter控制器驱动框架编写
  • [含文档+PPT+源码等]精品基于Python实现的vue3+Django计算机课程资源平台