当前位置: 首页 > 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 服务。如果端口没有被占用,则直接启动服务。

相关文章:

  • 工程化与框架系列(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 的使用与实践
  • 企业建网站的 程序/关键词seo培训
  • 200元网站建设/百度推广获客
  • 企业介绍微网站怎么做/lpl赛区战绩
  • 容桂网站制作代理商/要做网络推广
  • 网站开发公司成都/聊石家庄seo
  • 大学生网站建设规划书/华夏思源培训机构官网