linux启动jar文件Shell脚本

本文介绍了一个用于在Linux环境下启动和管理Java应用程序的Shell脚本execJar.sh。该脚本支持start、stop、restart和status四种操作,通过ps、nohup和kill等命令实现对指定JAR文件的进程控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

linux启动jar文件execJar.sh

#!/bin/bash
#这里可替换为你自己的执行程序,其他代码无需更改
#APP_NAME=server/app.jar
APP_NAME=${1##*/}
ALL_PATH=$1

usage() {
 echo "Usage: sh execJar.sh [path/procedure_name] [start|stop|restart|status]"
 exit 1
}
is_exist(){
 #echo "APP_NAME=" ${APP_NAME}
 pid=$(ps -ef|grep $APP_NAME |grep -v execJar | grep -v grep |awk '{print $2}')
 #echo "ps -ef|grep " ${APP_NAME} "|grep -v grep" 
 #echo "pid="${pid}
 if [ -z "${pid}" ]; then
 return 1
 else
 return 0
 fi
}
start(){
 is_exist
 if [ $? -eq "0" ]; then
 echo "${APP_NAME} is already running. pid=${pid} ."
 else
 nohup java -jar ${ALL_PATH} > /dev/null 2>&1 &
 echo "nohup java -jar ${ALL_PATH}.log /dev/null &"
 echo "${APP_NAME} start success"
 fi
}
stop(){
 is_exist
 if [ $? -eq "0" ]; then
 kill -9 $pid
 echo "${APP_NAME} ${pid} stoped "
 else
 echo "${APP_NAME} is not running"
 fi
}
status(){
 is_exist
 if [ $? -eq "0" ]; then
 echo "${APP_NAME} is running. Pid is ${pid}"
 else
 echo "${APP_NAME} is NOT running."
 fi
}

restart(){
 stop
 start
}

if [ $# -lt 2 ]
then
  usage
  exit 1
fi

case "$2" in
 "start")
 start
 ;;
 "stop")
 stop
 ;;
 "status")
 status
 ;;
 "restart")
 restart
 ;;
 *)
 usage
 ;;
esac

hs-server 目录下面放jar包,将sh文件放在hs-server同目录
在这里插入图片描述

### 编写适用于Windows的Shell脚本启动Java JAR文件 对于希望简化在Windows环境下启动多个Java应用程序过程的情况,可以通过批处理脚本(Batch Script)来实现这一目标。尽管严格意义上来说这不是Unix/Linux下的Shell脚本,但在功能上能够满足需求。 #### 创建批处理脚本(.bat) 为了达到备份旧版JAR包并部署新版的目的,可以按照如下方式构建批处理文件: ```batch @echo off setlocal enabledelayedexpansion :: 设置工作路径版本号等参数 set WORK_DIR=D:\jar\ set BACKUP_DIR=%WORK_DIR%backup\ if not exist %BACKUP_DIR% mkdir %BACKUP_DIR% for %%F in ("%WORK_DIR%\*.jar") do ( set FILE_NAME=%%~nxF move "%%F" "%BACKUP_DIR%!FILE_NAME!.bak" ) copy D:\path_to_new_jars\springApplicationA.jar %WORK_DIR% timeout /t 5 > nul start "" "java" -jar "%WORK_DIR%springApplicationA.jar" timeout /t 10 > nul copy D:\path_to_new_jars\springApplicationB.jar %WORK_DIR% timeout /t 5 > nul start "" "java" -jar "%WORK_DIR%springApplicationB.jar" ``` 此段代码实现了先定义好工作目录以及备份位置;接着检查是否存在指定的备份文件夹不存在就创建它;遍历当前目录中的所有`.jar`文件并将它们移动到备份文件夹中去,在文件名后面加上`.bak`作为扩展名表示这是一个备份副本[^1]。 之后通过`copy`指令将新的JAR文件从源地址拷贝至目标地址,并设置了一定时间间隔确保每一步骤顺利完成后再继续下一步的操作。最后利用`start`命令配合`java -jar`选项来异步开启两个不同的Spring Boot应用实例。 需要注意的是,上述例子假设所有的JAR文件都位于同一级目录内,并且新版本的应用程序也存放在固定的路径之下。实际环境中可能还需要根据具体情况调整这些设定值。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值