官方文档地址:https://docs.spring.io/spring-boot/docs/current/reference/html/deployment.html#deployment-install

有两种方式:

第一种是使用init.d,第二种是使用service

前提工作--修改pom

在pom.xml文件中标签中添加以下代码:

<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<executable>true</executable>
</configuration>
</plugin>

主要是executable这个标签

命令语法:Usage: ./park-single.jar {start|stop|force-stop|restart|force-reload|status|run}

说明:这种方式等同于使用java -jar方式

第一种方法: init.d方式

1.赋予jar包x权限

chmod a+x /home/demo/demo-1.0.0.1.jar

注释:a+x 是给所有人加上可执行权限,包括所有者,所属组,和其他人

2.创建jar包的软连接

ln -s /home/demo/demo-1.0.0.1.jar /etc/init.d/demo

注释:

  • demo即为自定义的服务名称
  • 删除软连接可以使用 rm -rf /etc/init.d/demo (/etc/init.d/demo最后没有/,不然删除不了软连接)

3.链接jdk下的java到sbin目录下

ln -s ${JAVA_HOME}/bin/java /sbin/java

注释:

  • 非绿色版本的jdk可以忽略该步骤
  • 不执行上述的命令,在启动服务时会出现java找不到的问题,如下所示:
# service demo start
Application is running as root (UID 0). This is considered insecure.
Unable to find Java

4.创建conf文件

在jar包的同级目录下创建和jar包名字完全相同,后缀为conf的文件,如jar包为demo-1.0.0.1.jar,先切换到jar包所在目录:

vim demo-1.0.0.1.conf
APP_NAME=demo
MODE=service #后台运行
JAVA_HOME=/usr/java/jdk1.8.0_191 #注:非绿色版可忽略
JAVA_OPTS="-server -Xms4G -Xmx4G -XX:+UseG1GC -Dfile.encoding=utf-8"
RUN_ARGS="--server.port=80 --spring.profiles.active=prod" # 根据实际情况来定
LOG_FOLDER=/home/demo # 根据实际情况来定
LOG_NAME=demo.log # 根据实际情况来定

注释:LOG_FOLDER,就是日志的存储位置必须是已经存在,否则启动报错

5.添加开机启动

chkconfig demo on
service demo start
# // 或者使用下面的命令
systemctl enable demo
systemctl start demo

# 重启验证是否可用:
reboot jps

6.移除开机自启动

service demo stop
chkconfig demo off
# //或者使用下面的命令
systemctl disable demo
systemctl stop demo

7.问题处理

生成的demo.log文件特别大,导致服务器存储被沾满,从而影响整个服务器的运行。

解决方案:

  • 指定demo.log文件位置,不指定的话默认在/var/log目录下
  • 使用logback日志时,生产环境一定要将console去掉,不然会导致demo.log越来越大
<!-- 4.2 生产环境:输出到文档 -->
<springProfile name="prod">
<root level="info">
<!-- 生产环境注释掉,不然生成的.log文件太大,导致磁盘占用过多 -->
<!-- <appender-ref ref="CONSOLE" /> -->
<appender-ref ref="LOG_FILE" />
<appender-ref ref="ERROR_FILE" />
</root>
</springProfile>

8.说明

默认pid文件:/var/run/<appname>/<appname>.pid

若是没有配置日志的话,默认日志文件路径:/var/log/<appname>.log

第二种方法:service方式

1.编写service文件

vim /usr/lib/systemd/system/park.service
[Unit]
Description=park
After=network.target [Service]
Type=simple
ExecStart=/home/demo/demo-1.0.0.1.jar start # 根据实际情况来定
ExecReload=/home/demo/demo-1.0.0.1.jar restart # 根据实际情况来定
ExecStop=/home/demo/demo-1.0.0.1.jar stop # 根据实际情况来定
Restart=on-failure
RestartSec=5
TimeoutStopSec=15
KillMode=mixed
StandardOutput=syslog # 日志输出到syslog处理
StandardError=syslog
SyslogIdentifier=park_log [Install]
WantedBy=multi-user.target

说明:

  • 若不使用syslog处理日志,则默认日志会输出到/var/log/message

2.使用rsyslog处理日志

# vim /etc/rsyslog.d/park_log.conf
if $programname == 'park_log' then /home/demo/logs/park.log
& stop # systemctl restart rsyslog

说明:

  • 需要事先创建好日志文件
  • 若不想保留程序日志,可以把日志路径换成/dev/null

3.启动,设置开机自启动

systemctl daemon-reload
systemctl start|stop|status|restart park.service
systemctl enable park.service

在CentO7系统上配置Springboot项目jar包开机自启动的更多相关文章

  1. springboot项目jar包运行

    springboot项目jar包运行 参考 Linux后台运行java的jar包 步骤 进入maven项目中,打包项目. mvn package -Dmaven.test.skip=true 运行ja ...

  2. 部署SpringBoot项目jar包到云服务器

    前言 做安卓开发也有三四年了,但是对网络这块什么http.tcp/ip之类的一直不理解.并且想自己做一些小项目练练手的时候,数据库直接存在apk里总不是滋味,所以这次站在安卓开发的角度尝试着做一做简单 ...

  3. SpringBoot:springboot项目jar包如何引入外置配置文件

            springboot项目打成jar包,默认读取的classpath路径下的配置文件,config.properties是自定义配置文件. 如果要把config.properties配置 ...

  4. SpringBoot项目jar包启动脚本

    startup.bat @echo off set path=X:\xxxxxxx\Java\JDK\jre\bin START "项目名" "%path%\java&q ...

  5. shell脚本运行springboot项目jar包

    #!/bin/bash APP_NAME=AutomationGuide-0.0.1-SNAPSHOT.jar #使用说明,用来提示输入参数 usage() { echo "please e ...

  6. Centos-Springboot项目jar包自启动

    CentOS环境下部署Springboot项目的jar包开机自启动. 部署环境 Centos 7.5 Springboot 2.1.x 操作步骤 修改pom 在pom.xml文件中<plugin ...

  7. linux安装docker,并在docker上运行springboot项目

    docker架构示例图 仓库---> 镜像 --->  容器 一.安装docker 1.通过 uname -r 命令查看你当前的内核版本 uname -r 2使用 root 权限登录 Ce ...

  8. linux服务器上部署springboot项目,并让他持续运行到后台

    我们知道在运行springboot 项目只需要java -jar + 项目的war包(jar包)名. 但是只要终端已停止那么服务就会被关闭,也就无法访问到我们的项目了.所以我们可以使用守护进程的方式来 ...

  9. 在Mac系统上配置Android真机调试环境

    在Mac系统上配置Android真机调试环境 mac上配置安卓环境还说挺方便的,真机调试也比win上要好一些.win上被各种软件强行安装了xxx助手. 在mac上就了一个干净的感觉. 下载Androi ...

随机推荐

  1. 如何用车辆历史违章查询API接口进行快速开发

    最近公司项目有一个车辆的历史违章查询显示的小功能,想着如果用现成的API就可以大大提高开发效率,所以在网上的API商店搜索了一番,发现了 APISpace,它里面的车辆历史违章查询API非常符合我的开 ...

  2. linux docker .net core 从建立网站到预览

    docker的安装在网上一搜一大把,windows安装的就是exe双击,linux安装需要执行语句 ps:需要准备xftp.xshell.vs 2019.linux服务器.docker账号密码 例如: ...

  3. Linux—系统基础一

    Linux系统基础(一) Linux的基本原则: 由目的单一的小程序组成,组合小程序完成复杂任务: 一切皆文件: 配置文件保存为纯文本格式. 1.shell 1.1 shell简介 Shell俗称壳( ...

  4. LevelSequence源码分析

    前言 这篇文章主要讲的是Unreal LevelSequence RunTime的部分.即在游戏中运行Level Sequence的源码解析.(而且抛去Replicated 的Sequence,一般S ...

  5. js实现两种99乘法表

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. Vue $nextTick && 过度与动画

    1 # $nextTick 2 # 1.语法: this.$nextTick(回调函数); 3 # 2.作用:在下一次DOM更新结束后执行其指定的回调. 4 # 3.什么时候用:当改变数据后,要基于更 ...

  7. 配置 Druid 数据源及密码加密-SpringBoot 2.7 实战基础

    在SpringBoot中配置 Druid 数据源及密码加密的方法 前文集成 MyBatis Plus,实现了一组增删改查接口.在启动服务时,从控制台中可以看出 Spring Boot 默认使用 Hik ...

  8. gitpod.io,云端开发调试工具。

    gitpod,一款在线开发调试工具,使用它你可以在网页上直接开发软件项目了. 比如你的项目仓库在github上,你可以直接在网址的前面添加gitpod.io/#,然后回车就能在网页上使用vscode打 ...

  9. 论文翻译:2021_LACOPE: Latency-Constrained Pitch Estimation for Speech Enhancement

    论文地址:延迟约束的语音增强基音估计 引用格式:Schröter H, Rosenkranz T, Escalante-B A N, et al. LACOPE: Latency-Constraine ...

  10. BS架构与CS架构

    BS与CS的区别:1.BS是标准规范的,CS的协议自定义:2.BS核心运算都在服务器端,CS客户端和服务器端都可以运算:3.BS只需要部署服务器端,CS需要同时升级客户端和服务器端. CS(Clien ...