java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > systemctl启动springboot服务

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

作者:学姐抱抱.

这篇文章主要介绍了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服务内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文