当前位置:首页 > 科技  > 软件

告别Java -Jar启动!告诉你启动单机SpringBoot服务的正确操作方式

来源: 责编: 时间:2024-01-08 09:17:56 301观看
导读一、安装Java运行时环境,这里我们使用开源免费的OpenJDK11查看OpenJDK11安装包列表yum list|grep java-11-openjdk执行安装命令。yum install -y java-11-openjdk.x86_64查看安装成功的版本。[root@localhost ~]# java

hEt28资讯网——每日最新资讯28at.com

一、安装Java运行时环境,这里我们使用开源免费的OpenJDK11

查看OpenJDK11安装包列表hEt28资讯网——每日最新资讯28at.com

yum list|grep java-11-openjdk

执行安装命令。hEt28资讯网——每日最新资讯28at.com

yum install -y java-11-openjdk.x86_64

查看安装成功的版本。hEt28资讯网——每日最新资讯28at.com

[root@localhost ~]# java -versionopenjdk version "11.0.21" 2023-10-17 LTSOpenJDK Runtime Environment (Red_Hat-11.0.21.0.9-1.el7_9) (build 11.0.21+9-LTS)OpenJDK 64-Bit Server VM (Red_Hat-11.0.21.0.9-1.el7_9) (build 11.0.21+9-LTS, mixed mode, sharing)

设置JAVA_HOME。hEt28资讯网——每日最新资讯28at.com

通过命令查找java安装的真实路径,使用which java找到的是软链接,需要通过ll命令一层层查找真实路径,我们这边最终/usr/bin/java真实的路径为 /usr/lib/jvm/java-11-openjdk-11.0.21.0.9-1.el7_9.x86_64/bin/java,那么我们的JAVA_HOME就是java的安装目录/usr/lib/jvm/java-11-openjdk-11.0.21.0.9-1.el7_9.x86_64,去掉 末尾的 /bin/java 。hEt28资讯网——每日最新资讯28at.com

[root@localhost ~]# which java/usr/bin/java[root@localhost ~]# ll /usr/bin/javalrwxrwxrwx 1 root root 22 Jan  2 16:13 /usr/bin/java -> /etc/alternatives/java[root@localhost ~]# ll /etc/alternatives/javalrwxrwxrwx 1 root root 64 Jan  2 16:13 /etc/alternatives/java -> /usr/lib/jvm/java-11-openjdk-11.0.21.0.9-1.el7_9.x86_64/bin/java[root@localhost ~]# ll /usr/lib/jvm/java-11-openjdk-11.0.21.0.9-1.el7_9.x86_64/bin/java-rwxr-xr-x 1 root root 13192 Nov 15 00:51 /usr/lib/jvm/java-11-openjdk-11.0.21.0.9-1.el7_9.x86_64/bin/java

编辑/etc/profile文件,添加JAVA_HOME配置,并使用source /etc/profile命令使环境配置生效,不需要配置CLASS_APTH, rt.jar, tools.jar。hEt28资讯网——每日最新资讯28at.com

vi /etc/profile
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.21.0.9-1.el7_9.x86_64export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile

二、编写启动、停止SpringBoot服务的Shell脚本

定义运行服务需要的参数,服务名称、服务程序路径、日志文件等,这里可以感觉自己的需要来定义,包括可以添加java -jar的运行参数等。hEt28资讯网——每日最新资讯28at.com

#!/bin/bashAPP_NAME="gitegg-application.jar" # 命令号提示服务名APP_PATH="/opt/server/gitegg-application.jar" # jar包文件路径LOG_FILE="/opt/server/gitegg-application.log" # 日志输出文件路径,一般我们服务会记录日志,如果不想在这里输出,那么可以填写 /dev/null

定义命令脚本运行提示,如果输入的命令格式错误,这里可以给出正确的命令格式等。hEt28资讯网——每日最新资讯28at.com

#使用说明,提示输入参数usage() { echo "Usage: sh start_server.sh [start|stop|restart|status]" exit 1}

定义检查服务是否正在运行的函数。hEt28资讯网——每日最新资讯28at.com

#检查服务是否正在运行is_running(){ pid=`ps -ef|grep $APP_PATH|grep -v grep|awk '{print $2}' `if [ -z "${pid}" ]; then return 1 else return 0 fi}

定义启动服务的函数。hEt28资讯网——每日最新资讯28at.com

#启动服务start(){  is_running  if [ $? -eq "0" ]; then    echo "${APP_NAME} is already running. pid=${pid} ."  else    nohup java -jar $APP_PATH > $LOG_FILE 2>&1 &  fi}

定义停止服务的函数。hEt28资讯网——每日最新资讯28at.com

#停止服务stop(){  is_running  if [ $? -eq "0" ]; then    kill -9 $pid  else    echo "${APP_NAME} is not running"  fi}

定义查看服务运行状态的函数。hEt28资讯网——每日最新资讯28at.com

#显示运行状态status(){  is_running  if [ $? -eq "0" ]; then    echo "${APP_NAME} is running. Pid is ${pid}"  else    echo "${APP_NAME} is NOT running."  fi}

定义服务重启函数。hEt28资讯网——每日最新资讯28at.com

#重启服务restart(){  stop  start}

脚本接收参数,根据参数执行对应的命令函数。hEt28资讯网——每日最新资讯28at.com

#选择要运行的命令case "$1" in  "start")    start    ;;  "stop")    stop    ;;  "status")    status    ;;  "restart")    restart    ;;  *)    usage    ;;esac

设置脚本执行权限,填写自己脚本文件的实际路径。hEt28资讯网——每日最新资讯28at.com

chmod +x /opt/server/start_server.sh

完整的执行脚本如下:

#!/bin/bashAPP_NAME="gitegg-application.jar" # 命令号提示服务名APP_PATH="/opt/server/gitegg-application.jar" # jar包文件路径LOG_FILE="/opt/server/gitegg-application.log" # 日志输出文件路径,一般我们服务会记录日志,如果不想在这里输出,那么可以填写 /dev/null #使用说明,提示输入参数usage() { echo "Usage: sh start_server.sh [start|stop|restart|status]" exit 1} #检查服务是否正在运行is_running(){ pid=`ps -ef|grep $APP_PATH|grep -v grep|awk '{print $2}' `if [ -z "${pid}" ]; then return 1 else return 0 fi} #启动服务start(){  is_running  if [ $? -eq "0" ]; then    echo "${APP_NAME} is already running. pid=${pid} ."  else    nohup java -jar $APP_PATH > $LOG_FILE 2>&1 &  fi} #停止服务stop(){  is_running  if [ $? -eq "0" ]; then    kill -9 $pid  else    echo "${APP_NAME} is not running"  fi} #显示运行状态status(){  is_running  if [ $? -eq "0" ]; then    echo "${APP_NAME} is running. Pid is ${pid}"  else    echo "${APP_NAME} is NOT running."  fi} #重启服务restart(){  stop  start} #选择要运行的命令case "$1" in  "start")    start    ;;  "stop")    stop    ;;  "status")    status    ;;  "restart")    restart    ;;  *)    usage    ;;esac

三、编写启动、停止SpringBoot服务的Shell脚本

在CentOS中的服务是由systemd管理的,可以通过systemctl命令进行服务运行的相关操作。hEt28资讯网——每日最新资讯28at.com

新增管理服务gitegg-server.service,服务名称可以自己定义,此服务放到 /lib/systemd/system/ 目录。hEt28资讯网——每日最新资讯28at.com

vi /lib/systemd/system/gitegg-server.service

编写服务内容。hEt28资讯网——每日最新资讯28at.com

[Unit]                                                                                                                                                                                                               Description=gitegg-server                                                                                                                                                                                  After=docker.socket early-docker.target network.targetWants=network-online.target docker.serviceRequires=docker.socket                                                                                                                                                                                                                                                                                                                                                                                                                 [Service]                                                                                                                                                                                                            Type=forking                                                                                                                                                                                                         ExecStart=/opt/server/start_server.sh startExecStop=/opt/server/start_server.sh stop            ExecSatus=/opt/server/start_server.sh status                                              ExecRestart=/opt/server/start_server.sh restart                                                                                                                                                                                                                                                      [Install]                                                                                                                                                                                                            WantedBy=multi-user.target

保存并重新加载配置。hEt28资讯网——每日最新资讯28at.com

systemctl daemon-reload

设置服务开机启动。hEt28资讯网——每日最新资讯28at.com

systemctl enable gitegg-server.service

可以直接使用systemctl 命令操作服务。hEt28资讯网——每日最新资讯28at.com

# 启动服务systemctl start gitegg-server.service# 关闭服务systemctl stop gitegg-server.service# 查看服务状态systemctl status gitegg-server.service# 重启服务systemctl restart gitegg-server.service

本文链接:http://www.28at.com/showinfo-26-57925-0.html告别Java -Jar启动!告诉你启动单机SpringBoot服务的正确操作方式

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 八张图讲清楚Mmap实现原理

下一篇: JS 中如何克隆对象?你学会了吗?

标签:
  • 热门焦点
  • iPhone卖不动了!苹果股价创年内最大日跌幅:市值一夜蒸发万亿元

    8月5日消息,今天凌晨美股三大指数高开低走集体收跌,道指跌0.41%;纳指跌0.36%;标普500指数跌0.52%。热门科技股也都变化极大,其中苹果报181.99美元,跌4.8%,创
  • 轿车从天而降电动车主被撞身亡 超速抢道所致:现场视频让网友吵翻

    近日,上海青浦区法院判决轿车从天而降电动车主被撞身亡案,轿车车主被判有期徒刑一年。案件显示当时男子驾驶轿车在上海某路段行驶,前车忽然转弯提速超车,
  • 把LangChain跑起来的三个方法

    使用LangChain开发LLM应用时,需要机器进行GLM部署,好多同学第一步就被劝退了,那么如何绕过这个步骤先学习LLM模型的应用,对Langchain进行快速上手?本片讲解3个把LangChain跑起来
  • 梁柱接棒两年,腾讯音乐闯出新路子

    文丨田静 出品丨牛刀财经(niudaocaijing)7月5日,企鹅FM发布官方公告称由于业务调整,将于9月6日正式停止运营,这意味着腾讯音乐长音频业务走向消亡。腾讯在长音频领域还在摸索。为
  • 中国家电海外掘金正当时|出海专题

    作者|吴南南编辑|胡展嘉运营|陈佳慧出品|零态LT(ID:LingTai_LT)2023年,出海市场战况空前,中国创业者在海外纷纷摩拳擦掌,以期能够把中国的商业模式、创业理念、战略打法输出海外,他们依
  • 新电商三兄弟,“抖快红”成团!

    来源:价值研究所作 者:Hernanderz 随着内容电商的概念兴起,抖音、快手、小红书组成的“新电商三兄弟”成为业内一股不可忽视的势力,给阿里、京东、拼多多带去了巨大压
  • 大厂卷向扁平化

    来源:新熵作者丨南枝 编辑丨月见大厂职级不香了。俗话说,兵无常势,水无常形,互联网企业调整职级体系并不稀奇。7月13日,淘宝天猫集团启动了近年来最大的人力制度改革,目前已形成一
  • iQOO Neo8 Pro即将开售:到手价3099元起 安卓性能最强旗舰

    5月23日,iQOO如期举行了新品发布会,全新的iQOO Neo8系列也正式与大家见面,包含iQOO Neo8和iQOO Neo8 Pro两个版本,其中标准版搭载高通骁龙8+,而Pro版更
  • 联想YOGA 16s 2022笔记本将要推出,屏幕支持触控功能

    联想此前宣布,将于11月2日19:30召开联想秋季轻薄新品发布会,推出联想 YOGA 16s 2022 笔记本等新品。官方称,YOGA 16s 2022 笔记本将搭载 16 英寸屏幕,并且是一
Top