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服务

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/591717.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android 13 - Media框架(29)- MediaCodec(四)

上一节我们了解了如何通过 onInputBufferAvailable 和 getInputBuffer 获取到 input buffer index,接下来我们一起学习上层如何拿到buffer并且向下写数据的。 1、获取 input Buffer 获取 MediaCodec 中的 buffer 有两种方式,一种是调用 getInputBuffers…

Jsonpath - 数据中快速查找和提取的强大工具

JSON(JavaScript Object Notation)在现代应用程序中广泛使用,但是如何在复杂的JSON数据中 查找和提取所需的信息呢? JSONPath是一种功能强大的查询语言,可以通过简单的表达式来快速准确地定位和提取JSON数据。本文将介…

如何将内容转化为流量?媒介盒子分享

软文营销就是将内容转为流量的常见做法,但是有许多企业在做内容时往往一头雾水导致效果不佳,做内容不是光靠写就可以的,还需要做好选题、类型、结构等,今天媒介盒子就来和大家聊聊:如何将内容转化为流量。 一、 确定内…

【SpringBoot开发】之商城项目案例(购物车相关操作)

🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是君易--鑨,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的博客专栏《SpringBoot开发之商城项目系列》。&#x1f3af…

2023最新租号平台系统源码支持单独租用或合租使用

这是一款租号平台源码,采用常见的租号模式。目前网络上还很少见到此类类型的源码。 平台的主要功能如下: 支持单独租用或采用合租模式; 采用易支付通用接口进行支付; 添加邀请返利功能,以便站长更好地推广&#xf…

每天刷两道题——第三天

1.1两两交换链表中的节点 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换) 输入:[1,2,3,4] 输出:[2,1,4,3…

祝贺首届兽医专业学位研究生创新创业大赛圆满闭幕

为进一步贯彻落实科教兴国、农业强国发展战略,适应兽医行业、产业发展需求,提高兽医专业学位研究生实践创新能力,推动兽医领域高层次应用型人才培养供给侧改革,促进兽医专业学位教育高质量发展,12月28日由中国学位与研…

什么是分布式锁

想象一下,如果没有分布式锁,多个分布式节点同时涌入一个共享资源的访问时,就像一群饥肠辘辘的狼汇聚在一块肉前,谁都想咬一口,最后弄得肉丢了个精光,大家都吃不上。 而有了分布式锁,就像给这块肉…

Python轴承故障诊断 (九)基于VMD+CNN-BiLSTM的故障分类

往期精彩内容: Python-凯斯西储大学(CWRU)轴承数据解读与分类处理 Python轴承故障诊断 (一)短时傅里叶变换STFT Python轴承故障诊断 (二)连续小波变换CWT_pyts 小波变换 故障-CSDN博客 Python轴承故障诊断 (三)经验模态分解EMD_轴承诊断 …

JAVAEE初阶相关内容第二十弹--HTTP协议

写在前:2024年啦!新的一年要努力学习啦 本篇博客围绕HTTP协议,对HTTP协议进行了解,需要理解其工作过程,对HTTP协议格式要清楚,通过抓包工具进行协议分析,认识“方法”、“请求报头”&#xff0c…

爬虫与反爬-localStorage指纹(某易某盾滑块指纹检测)(Hook案例)

概述:本文将用于了解爬虫中localStorage的检测原理以及讲述一个用于检测localStorage的反爬虫案例,最后对该参数进行Hook断点定位 目录: 一、LocalStorage 二、爬虫中localStorage的案例(以某盾滑块为例) 三、如何…

CSP CCF 201512-2 消除类游戏 C++满分题解

解题思路: 1.用两个矩阵来存储原始值,其中一个永远不改变,只用来判断,这样可以防止消除某一行或某一列后影响其它行或列。 2.记录下每一行每个数字出现的次数和每一列每一个数字出现的次数。 3.只有当某一行或某一列的某个数出…

Ubuntu之修改时区/时间

1、查看当前时间及时区状态 sudo timedatectl status # 显示当前时区为Asia/Shanghai 2、查看当前系统时间 sudo date 3、查看当前系统时间及时区 sudo date -R # 显示当前时间及对应时区,时区为“0800”北京时区 4、修改硬件时间 修改日期格式&#xff1a…

51单片机项目(26)——基于51单片机的超声波测距protues仿真

1.功能设计 用51单片机做的超声波测距系统,用的传感器是HCSR04,将距离实时显示在LCD1602屏幕上!!内含keil工程 完整的protues文件 可以运行!!! 仿真截图:(有一丢丢的误差…

[Mac软件]ColorWell For Mac 7.4.0调色板生成器

美丽而直观的调色板和调色板生成器是任何Web或应用程序开发人员工具包的必要补充! 创建无限数量的调色板,快速访问所有颜色信息和代码生成,用于应用程序开发,非常简单。可编辑调色板数据库允许您存档和恢复任何调色板&#xff0c…

x-cmd pkg | lazygit - git 命令的终端 UI

目录 简介首次用户功能特点类似工具与竞品进一步探索 简介 lazygit 由 Jesse Duffield 于 2018 年使用 Go 语言构建的 git 终端交互式命令行工具,旨在终端界面中便捷管理 git 存储库。 首次用户 使用 x lazygit 即可自动下载并使用 在终端运行 eval "$(curl …

一站式指南:了解和绘制项目基线

项目基线是记录下来的一个起点,用来建立项目的绩效指标,并将其与之前的基准进行比较。对于所有团队而言,基线是进行有效绩效测量的必需工具。 项目成功的每一步都要依赖于一个坚固的基线。研究表明,在48个大型项目中,…

图神经网络与分子表征:番外——等变术语

本文重点参考了这篇博客:https://nb.bohrium.dp.tech/detail/1342 看论文时经常会遇到 SE3, SO3, O3 等字样,云里雾里,难以理解。本文对这些术语进行集中解释。 文章目录 数学术语GNN 设计要求平移不变性排列、置换不变性镜面等变性旋转等变…

【热点】程序员会不会被人工智能取代?

前两周,ZA技术社区举办了一场主题为“未来,程序员职业会消失吗?”的Geek圆桌派,我作为业务研发的代表参加了此次直播。由于直播时间有限,未能充分表达我的观点,故写此篇博客进行详述。另一方面,…

bootstrap5开发房地产代理公司Hamilton前端页面

一、需求分析 房地产代理网站是指专门为房地产行业提供服务的在线平台。这些网站的主要功能是连接房地产中介机构、房产开发商和潜在的买家或租户,以促成买卖或租赁房产的交易。以下是一些常见的房地产代理网站的功能: 房源发布:房地产代理网…