-
在Linux系统中先安装java的JDK
-
然后编写下列service.sh脚本,并根据自己的需求只需要修改export的log_path、exec_cmd参数即可
1.bash# 配置运行日志输出的路径 export log_path=/usr/local/project/study-pro/logs # 当前服务运行的脚本命令 export exec_cmd="nohup /usr/local/project/openjdk-8/bin/java -jar /usr/local/project/study-pro/study-pro-0.0.1-SNAPSHOT.jar" # 获取脚本所在的目录 CUR_DIR=$(dirname $0) # 进入到该目录运行,这样可以规避绝对路径的问题,你的脚本迁移到任何目录都可以正常运行 cd ${CUR_DIR} # 该函数running正常退出,not running则退出非0值 check_server_is_running() { [[ ! -f "pid" ]] && touch pid # 获取 PID=$(cat pid) # 首先判断pid是否存在 if [ "${PID}" = "" ] then echo "server is not running." return 1 fi # 再判断指定的PID是否在当前目录运行,防止因历史异常原因遗留了失效PID,正好该PID又被其他进程占用,造成误杀。 if [[ -d /proc/${PID}/cwd ]] && ls -ahl /proc/${PID}/cwd | grep -q "${CUR_DIR}" then echo "server is running." return 0 else # 清空失效的进程号并异常退出 echo "" > pid return 1 fi } start() { # 启动前判断日志目录是否存在,不存在就创建 [[ ! -d "${log_path}" ]] && mkdir -p ${log_path} # 启动服务 ${exec_cmd} > ${log_path}/start.log 2>&1 & # 保存PID,以供stop使用 PID=$! echo "server start succ, PID=${PID}!" echo "${PID}" > pid } stop() { # get pid PID=$(cat pid) kill -9 ${PID} } case C"$1" in Cstart) # ||:前一个运行失败后,才运行后面一个脚本。单进程执行。若遇到第一个执行成功的脚本后,后面的脚本不再执行。 check_server_is_running || start echo "start done." ;; Cstop) # &&:前一个运行成功后,才运行下一个。单进程执行,若中途某个脚本执行报错,后面的脚本不再执行 check_server_is_running && stop echo "stop done." ;; Crestart) check_server_is_running && stop check_server_is_running || start echo "restart done." ;; C*) echo "Usage: $0 {start|stop|restart}" ;; esac -
如果脚本没有可执行权限,需要先赋权再执行命令
1.bashchmod -R +x service.sh -
在脚本的目录中执行下列命令即可正常运行、停止、重启相应的Spring Boot服务
1.|----------------------|------|
| 执行脚本 | 说明 |
| ./service.sh start | 服务启动 |
| ./service.sh stop | 服务停止 |
| ./service.sh restart | 服务重启 | -
当前示例执行服务启动命令,可以看出服务已经可以正常启动并访问了
1.bash./service.sh start
【Spring Boot】如何在Linux系统中快速启动Spring Boot的jar包
upton-nan2023-11-29 1:38
相关推荐
鱼跃鹰飞2 小时前
设计模式系列:工厂模式好好学习啊天天向上2 小时前
C盘容量不够,python , pip,安装包的位置a努力。2 小时前
国家电网Java面试被问:混沌工程在分布式系统中的应用Yvonne爱编码2 小时前
Java 四大内部类全解析:从设计本质到实战应用li_wen012 小时前
文件系统(八):Linux JFFS2文件系统工作原理、优势与局限J2虾虾2 小时前
SpringBoot和mybatis Plus不兼容报错的问题wypywyp2 小时前
2.虚拟机一直显示黑屏,无法打开,可能是分配的硬盘空间不够SongYuLong的博客3 小时前
TL-WR710N-V2.1 硬改刷机OpenWRT源码编译固件AlfredZhao3 小时前
Docker 快速入门:手把手教你打包 Python 应用毕设源码-郭学长3 小时前
【开题答辩全过程】以 基于springboot 的豪华婚车租赁系统的设计与实现为例,包含答辩的问题和答案


