restart-java-app.sh 是一个功能强大的Java应用管理脚本,支持启动、停止、重启和状态查看等操作。脚本支持单个JAR包操作和多JAR包批量操作,提供灵活的JAR包昵称匹配功能。
在使用脚本前,需要修改脚本开头的配置参数:
# ========================================
# 配置参数 - 请根据实际情况修改
# ========================================
JAR_NAME="" # JAR包名称(留空则自动检测)
| 参数 | 说明 | 示例 |
|---|---|---|
JAR_NAME |
JAR包文件名(留空可自动检测) | "my-spring-boot-app.jar" 或 "" |
自动检测功能: 如果将 JAR_NAME 留空(JAR_NAME=""),脚本会自动检测当前目录下的JAR文件:
| 参数 | 说明 | 默认值 |
|---|---|---|
JAVA_OPTS |
JVM启动参数 | "-Xms512m -Xmx1024m" |
LOG_FILE |
日志文件名(留空则自动生成) | "" |
PID_FILE |
PID文件名 | "app.pid" |
chmod +x restart-java-app.sh
# 重启应用(默认操作)
./restart-java-app.sh
# 或者明确指定重启
./restart-java-app.sh restart
# 启动应用
./restart-java-app.sh start
# 停止应用
./restart-java-app.sh stop
# 查看应用状态
./restart-java-app.sh status
# 显示帮助信息
./restart-java-app.sh help
脚本使用彩色输出来区分不同类型的消息:
脚本运行时会创建以下文件:
log/{JAR包名}/ 目录下,格式为 {JAR包名}_{启动时间}.logapp.pid - 应用进程PID文件LOG_FILE="" 时,系统会自动生成日志文件名和路径log/{JAR包名称}/{JAR包名称}_{年月日_时分秒}.logmy-spring-boot-app.jarlog/my-spring-boot-app/my-spring-boot-app_20240115_143025.loglog/{JAR包名}/ 目录结构LOG_FILE="custom.log",则使用指定的文件名A:
JAR_NAME=""),确保当前目录下有且仅有一个JAR文件JAR_NAME配置是否正确,确保JAR文件在脚本同一目录下A: 当目录下有多个JAR文件时,脚本会显示选择菜单,按提示输入对应的序号即可选择要启动的JAR文件。你也可以在脚本中明确指定JAR_NAME,例如:JAR_NAME="my-app.jar"
A: 查看app.log日志文件,检查具体错误原因。
A: 脚本会先尝试优雅停止,30秒后自动强制停止。
如果你的目录下只有一个JAR文件,可以使用自动检测模式:
JAR_NAME="" # 留空,自动检测
# 启动应用
./restart-java-app.sh start
# 重启应用
./restart-java-app.sh restart
脚本会自动检测并使用目录下唯一的JAR文件。
假设你有一个名为my-app.jar的Spring Boot应用:
JAR_NAME="my-app.jar"
# 启动应用
./restart-java-app.sh start
# 重启应用
./restart-java-app.sh restart
# 停止应用
./restart-java-app.sh stop
./restart-java-app.sh status
当目录下有多个JAR文件时,脚本会提供交互式选择:
# 启动脚本,会显示选择菜单
./restart-java-app.sh start
当脚本检测到多个JAR文件时,会提供交互式选择界面:
检测到多个JAR文件,请选择要启动的应用:
[1] user-service-1.0.0.jar
[2] order-service-1.0.0.jar
[3] payment-service-1.0.0.jar
输入选项:
- 单个序号: 1 (选择第1个JAR包)
- 多个序号: 1,3,5 或 1 3 5 (选择多个JAR包)
- 全部选择: all (选择所有JAR包)
请输入选择:
支持的输入格式:
1 - 选择单个JAR包1,3,5 - 选择多个JAR包(逗号分隔)1 3 5 - 选择多个JAR包(空格分隔)all - 选择所有JAR包选择多个JAR包时,脚本会自动切换到批量操作模式。
输出示例:
检测到多个JAR文件,请选择要启动的应用:
[1] my-web-app.jar
[2] my-api-service.jar
[3] my-batch-job.jar
请输入序号 (1-3): 2
✓ 已选择: my-api-service.jar
正在启动应用...
JAR包: my-api-service.jar
JVM参数: -Xms512m -Xmx1024m
日志文件: log/my-api-service/my-api-service_20240115_143025.log
✓ 应用启动成功 (PID: 12345)
日志文件: log/my-api-service/my-api-service_20240115_143025.log