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

linux简版启动,关闭jar命令

启动命令:start.sh

#!/bin/sh# ===================== 配置区(可根据需要调整) =====================
# 默认的jar包名称(如果不传参数则使用这个默认值)
DEFAULT_JAR_NAME="tongyan-resource-0.0.1-SNAPSHOT"
# JDK路径
JAVA_HOME=/home/tjgeo/tools/jdk1.8.0_251
# 日志路径
LOG_PATH='/home/tjgeo/logs/resource'
# ==================================================================# 配置环境变量
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME PATH# 接收外部传递的jar包名称参数,不传则用默认值
JAR_NAME=${1:-$DEFAULT_JAR_NAME}
# 拼接完整的jar包路径
JAR_FILE="../${JAR_NAME}.jar"# 检查日志目录是否存在,不存在则创建
if [ ! -d "$LOG_PATH" ]; thenmkdir -p "$LOG_PATH"echo ">>> 日志目录不存在,已创建:$LOG_PATH <<<"
fi# 检查jar包是否存在
if [ ! -f "$JAR_FILE" ]; thenecho ">>> 错误:jar包不存在!路径:$JAR_FILE <<<"exit 1
fi# 删除旧的pid文件
rm -f tpid# 启动jar包
nohup java -jar "$JAR_FILE" >> "$LOG_PATH/nohup.log" 2>&1 &
# 记录进程ID
echo $! > tpidecho ">>> 启动成功!PID=$! <<<"
echo ">>> 启动的jar包:$JAR_FILE <<<"
echo ">>> 日志文件路径:$LOG_PATH/nohup.log <<<"

使用方法:

默认包名:
sh 你的脚本名.sh指定包名:
sh 你的脚本名.sh tongyan-resource-1.0.0

停止命令:stop.sh

#!/bin/bash# ===================== 配置区(可根据需要调整) =====================
# 默认的jar包名称(如果不传参数则使用这个默认值)
DEFAULT_JAR_NAME="tongyan-resource-0.0.1-SNAPSHOT"
# ==================================================================# 接收外部传递的jar包名称参数,不传则用默认值
JAR_NAME=${1:-$DEFAULT_JAR_NAME}
# 拼接要匹配的jar包完整名称(用于查找进程)
JAR_FILE="${JAR_NAME}.jar"# 查找对应jar包的进程PID(排除grep自身进程)
PID=$(ps -ef | grep "$JAR_FILE" | grep -v grep | awk '{ print $2 }')# 判断进程是否存在
if [ -z "$PID" ]
thenecho ">>> 应用【$JAR_FILE】已停止(未找到相关进程) <<<"
elseecho ">>> 开始停止应用【$JAR_FILE】,进程ID:$PID <<<"# 先尝试优雅停止(SIGTERM),等待3秒后检查是否仍在运行kill $PIDsleep 3# 再次检查进程是否存在,若仍存在则强制杀死(SIGKILL)PID_CHECK=$(ps -ef | grep "$JAR_FILE" | grep -v grep | awk '{ print $2 }')if [ -n "$PID_CHECK" ]thenecho ">>> 优雅停止失败,强制杀死进程 $PID_CHECK <<<"kill -9 $PID_CHECKfiecho ">>> 应用【$JAR_FILE】已停止 <<<"
fi

使用方法:

默认包名:
sh 你的脚本名.sh指定包名:
sh 你的脚本名.sh tongyan-resource-1.0.0

 

http://www.jsqmd.com/news/267726/

相关文章:

  • 基于AI功能+Node.js+微信小程序的大众点评美食系统(程序系统+论文+PPT)
  • HarmonyOS NEXT(鸿蒙)基础知识
  • 基于数据可视化分析+人脸识别员工考勤管理系统设计与实现(毕业设计源码+论文+精美PPT)
  • 2026年哈萨克斯坦评价高的GOST-K认证,俄罗斯EPC项目认证排名较高企业 - 速递信息
  • 完整教程:【JavaEE】万字详解JVM
  • 太阳系模型
  • 谷歌最强 AI 开放翻译模型 TranslateGemma:手机也能跑?
  • 基于Vue.js的人像后期融合网站的设计与实现(毕业设计源码+论文+精美PPT)
  • 2026年山西口碑好的外贸网站建设公司排名,解决外贸企业建站运营痛点 - 工业品牌热点
  • 地下水数值模拟软件Visual modflow Flex
  • 替代不是终点:支持AI自动化的国产高端芯片封装设计软件/方案推荐 - 品牌2026
  • AWS Device Farm 移动端碎片化回归测试实战指南
  • Laravel和TP框架的区别
  • FreeSWITCH 的 force_transfer_context
  • DeepSeek说AI
  • 文科创业内卷严重?跟紧时代潮流,打造核心竞争力,脱颖而出
  • 2026中国DevOps平台选型全景洞察:技术适配与效能跃升
  • 从千元到近亿,“死了么”App为何刷爆全网?
  • 推荐一下生鲜食材配送企业,苏州旺利涛食品贸易费用多少? - 工业品牌热点
  • 【数据库深度解析】关系型、非关系型、向量数据库核心原理与选型
  • 【Python 技术深度解析】核心特性、生态架构与实战价值
  • 费马大定律代码化和定理《计算机科学中的数学》外扩学习1
  • 2026年河南美术艺考培训指南:郑州画室优选力度,双优模式适配新高考 - 深度智识库
  • 揭秘Luminex平台配套原料:优质国产原料供应商推荐 - 品牌推荐大师
  • [AI] 模型安全防护实战:Prompt Injection、Jailbreak 与输入净化全攻略
  • 解放HR的关键一步:OpenCSG公益课教你用工程化提示词,让招聘标准“从始至终”保持一致
  • 2026网安程序员,会有35岁危机吗?
  • 测试测试03
  • Flink JDBC SQL Connector 用一张 DDL 打通任意关系型数据库(Scan / 维表 Join / Upsert 落库 / Catalog)
  • 【Zabbix 监控 Redis 实战教程(附图文教程):从 Zabbix-Server 部署、Agent2 安装配置到自带监控模板应用全流程】