centos7如何通过systemctl启动springboot服务代替java -jar方式启动

 更新时间:2024年01月02日 10:54:35   作者:学姐抱抱.  
这篇文章主要介绍了centos7如何通过systemctl启动springboot服务代替java -jar方式启动,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

背景:以前启动jar包都是通过java -jar,后面了解到一种注册服务式启动jar包的方式,所以做个记录。
注意:我在写该篇博客的时候,给脚本代码都加了#注释来解释该行脚本命令的意思,所以可能出现复制该篇博客脚本代码后启动不了的问题(把#和一些不应该有的空格去掉应该就可以了,有问题可以评论滴我。)
我们项目的目录是这样:
/opt/webapps/financing/financing-api 在这个目录下有如下配置。

接下来开始讲怎么通过systemctl启动springboot服务启动

1、首先进入centos /etc/systemd/system/目录

cd /etc/systemd/system/

2、新建一个springboot项目名.servie文件(我这里是financing-api项目,所以新建financing-api.service文件

financing-api.service内容如下

[Unit]  #定义了服务的名称、描述、依赖关系等信息。 
Description=financing-api server
After=network.target remote-fs.target nss-lookup.target
[Service] #定义了服务的类型、用户、工作目录、启动命令等信息。 
Type=forking
User=root
EnvironmentFile=/opt/webapps/financing/financing-api/config/financing-api.env #一定要有该env配置。具体env的目录根据自己服务器实际部署情况来修改。
WorkingDirectory=/opt/webapps/financing/financing-api #
ExecStartPre=/bin/sh -c 'if [ ! -d ${LOG_PATH} ]; then mkdir ${LOG_PATH}; fi'。#定义了在启动服务之前要执行的命令。
ExecStart=/bin/sh -c '${JAVA_HOME}/java ${JVM_OPTIONS} -jar -Dloader.path=${APP_HOME}/lib ${REMOTE_DEBUG_OPTS}  ${APP_HOME}/${JAR_NAME} > /dev/null  2>&1 &' #定义了启动服务的命令。 
ExecReload=/bin/kill -s HUP $MAINPID  #定义了重启服务的命令
ExecStop=/bin/kill -s QUIT $MAINPID   #定义了停止服务的命令
[Install]
WantedBy=multi-user.target #定义了服务的启动方式。

3、进入env所在的目录,配置一个financing-api.env文件

financing-api.env内容如下

JAR_NAME=financing-core-1.0.0.jar #指定jar包名
PROFILE=dev #指定配置文件的模式
PROJ_HOME=/opt/webapps/financing/financing-api #项目目录
APP_HOME=$PROJ_HOME
LOG_PATH=$PROJ_HOME/logs #日志目录
GC_LOG_OPTS="-XX:+PrintGC -XX:+PrintGCDetails -Xloggc:/opt/webapps/financing/financing-api/logs/gc.log"#垃圾回收日志文件
GC_OPTS=-XX:+UseG1GC #垃圾回收类型
REMOTE_DEBUG_OPTS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 #远程断点配置 默认5005
OTHER_OPTS=-Dspring.profiles.active=dev #指定jar包启动的配置文件
JVM_OPTIONS="-server -Xms512m -Xmx512m $GC_OPTS $GC_LOG_OPTS $OTHER_OPTS" #这里的xms 和xmx根据自己服务器实际情况配置
JAVA_HOME=/usr/install/java/bin  #服务器上java_home的目录

4、部署启动脚本 start.sh,一般在jar包同目录

#!/usr/bin/env bash
# 执行前需要加可执行权限: chmod +x restart.sh
systemctl restart financing-api
echo "financing-api服务重启完成."
tail -200f logs/log_info.log

5、执行启动脚本即可通过 systemctl命令启动springboot服务

到此这篇关于centos7通过systemctl启动springboot服务代替java -jar方式启动的文章就介绍到这了,更多相关systemctl启动springboot服务内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • SpringBoot JPA 表关联查询实例

    SpringBoot JPA 表关联查询实例

    本篇文章主要介绍了SpringBoot JPA 表关联查询实例,使用JPA原生的findBy语句实现,具有一定的参考价值,有兴趣的可以了解一下。
    2017-04-04
  • SpringBoot通过请求对象获取输入流无数据

    SpringBoot通过请求对象获取输入流无数据

    这篇文章主要介绍了使用SpringBoot通过请求对象获取输入流无数据,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • SpringMVC拦截器超详细解读

    SpringMVC拦截器超详细解读

    SpringMVC的处理器拦截器,类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理。 依赖于web框架,在实现上基于Java的反射机制,属于面向切面编程(AOP)的一种运用
    2022-07-07
  • SpringBoot3和ShardingSphere5框架实现数据分库分表

    SpringBoot3和ShardingSphere5框架实现数据分库分表

    这篇文章主要介绍了SpringBoot3和ShardingSphere5框架实现数据分库分表的相关资料,需要的朋友可以参考下
    2023-08-08
  • Java面向接口编程之简单工厂模式示例

    Java面向接口编程之简单工厂模式示例

    这篇文章主要介绍了Java面向接口编程之简单工厂模式,结合实例形式详细分析了java面向接口编程简单工厂模式的具体定义与使用方法,需要的朋友可以参考下
    2019-09-09
  • Java中的代理原理及代理使用示例

    Java中的代理原理及代理使用示例

    这篇文章主要介绍了Java中的代理原理及代理使用示例,本文讲解了Java Socket编程中加入代理的2种方法,需要的朋友可以参考下
    2015-03-03
  • 关于SpringBoot拦截器中Bean无法注入的问题

    关于SpringBoot拦截器中Bean无法注入的问题

    这两天遇到SpringBoot拦截器中Bean无法注入问题。下面介绍关于SpringBoot拦截器中Bean无法注入的问题,感兴趣的朋友一起看看吧
    2021-10-10
  • Spring Boot 中的任务执行器基本概念及使用方法

    Spring Boot 中的任务执行器基本概念及使用方法

    务执行器是 Spring Boot 中的一个非常实用的模块,它可以简化异步任务的开发和管理,在本文中,我们介绍了任务执行器的基本概念和使用方法,以及一个完整的示例代码,需要的朋友可以参考下
    2023-07-07
  • Java利用ffmpeg实现视频MP4转m3u8

    Java利用ffmpeg实现视频MP4转m3u8

    本文综合了下网上教程,从ffmpeg工具转码,ffmpeg视频播放,java语言操控ffmpeg转码,转码后视频上传阿里云oss,四个方面完整记录下这个流程,需要的朋友可以参考下
    2024-02-02
  • 23种设计模式(2) java工厂模式

    23种设计模式(2) java工厂模式

    这篇文章主要为大家详细介绍了23种设计模式之java工厂模式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11

最新评论