139 字
1 分钟
Linux 管理 JAR 服务的 Shell 脚本
在生产环境中直接用 java -jar 启动服务不便管理,以下脚本封装了 start / stop / restart / status 四个操作,支持后台运行。
尚未安装 JDK?参见 Linux 手动安装 JDK 1.8 并配置环境变量
使用方法
sh server.sh start # 启动服务sh server.sh status # 查看状态sh server.sh stop # 停止服务sh server.sh restart # 重启服务脚本内容
将以下内容保存为 server.sh,修改顶部的 APP_NAME 和 APP_PATH 为实际值:
#!/bin/bash
# 修改为实际的 JAR 文件名(不含路径)APP_NAME=app.jar# 修改为 JAR 文件所在目录APP_PATH=/opt/app/jar
usage() { echo "Usage: sh server.sh [start|stop|restart|status]" exit 1}
is_exist() { pid=$(ps -ef | grep $APP_NAME | grep -v grep | awk '{print $2}') if [ -z "${pid}" ]; then return 1 else return 0 fi}
start_log() { is_exist if [ $? -eq 0 ]; then echo "${APP_NAME} 启动成功!pid=${pid}" else echo "${APP_NAME} 启动失败,请检查后重试" fi}
start() { is_exist if [ $? -eq 0 ]; then echo "${APP_NAME} is already running. pid=${pid}" else nohup java -jar ${APP_PATH}/${APP_NAME} > /dev/null 2>&1 & start_log fi}
stop() { is_exist if [ $? -eq 0 ]; then kill -9 $pid echo "${APP_NAME} 已关闭!pid=${pid}" 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 echo "${APP_NAME} 准备重启..." sleep 5 start}
case "$1" in "start") start ;; "stop") stop ;; "status") status ;; "restart") restart ;; *) usage ;;esacTIP如果 JAR 包名称包含版本号等动态部分(如
app-1.0.0.20240101.jar),可将APP_NAME设置为固定前缀,并将启动命令改为:nohup java -jar ${APP_PATH}/${APP_NAME}*.jar > /dev/null 2>&1 &
赋予执行权限
chmod +x server.sh 分享
如果这篇文章对你有帮助,欢迎分享给更多人!
Linux 管理 JAR 服务的 Shell 脚本
https://blog.olinl.com/posts/jar-service-script/ 相关文章 智能推荐
1
Linux 定期清理日志文件脚本(Crontab)
Linux 系统管理 使用 Shell 脚本结合 Crontab 定期清理 Linux 服务器上的过期日志文件,防止磁盘空间被日志耗尽。
2
Linux 服务器时间同步配置(Chrony)
Linux 系统管理 使用 Chrony 工具为 Linux 服务器配置时间同步,支持阿里云、腾讯云等国内 NTP 源及内网 NTP 服务器。
3
服务器初始化完整配置流程
HomeLab 私有云 记录生产环境服务器从零开始的完整初始化流程,包括换源、时区配置、K8s 集群搭建、MinIO、Redis 集群、MySQL 单节点安装。
4
Linux 安装 Maven 并配置私服镜像
服务与应用运维 下载 Apache Maven tar.gz 包并配置环境变量,同时附上阿里云镜像与 Nexus 私服的 settings.xml 完整配置示例。
5
Linux 手动安装 JDK 1.8 并配置环境变量
服务与应用运维 通过下载 tar.gz 包手动安装 JDK 1.8,配置 JAVA_HOME 等环境变量,适用于 CentOS、Debian、Ubuntu 等主流发行版。
