官方文档地址: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. 使用supervisor设置应用开机自启

    安装supervisor: sudo apt install supervisor -y 创建配置文件: sudo vim /etc/supervisor/conf.d/frpc.conf frpc. ...

  2. Solution -「CF113D」Museum

    Upd 2021.10.21 更改了状态定义. 记 \(S(u)\) 表示 \(u\) 结点的相邻结点的集合. 又记 \(p(u)\) 表示走到了 \(u\) 且下一步继续留在 \(u\) 结点的概率 ...

  3. 安装linux下一些常用软件

    1.先卸载一些不常用的软件 apt purge ufw lxd lxd-client lxcfs lxc-common 2.安装一些常用软件 apt install iproute2 ntpdate ...

  4. Eslint 项目笔记

    1.代码下一行不要验证报错 代码的上一行打上注释 <--eslint-disable-next-line-->

  5. 10 Dubbo 配置实战

    Dubbo 配置实战 快速入门 dubbo 建议看这篇文章是在学习了快速入门 dubbo 那篇文章的基础上来学习 配置说明 文档地址 https://dubbo.apache.org/zh/index ...

  6. 市面上的工业ERP系统如何区别?存在什么样的不同?

    工业发展当中所要涉及到的管理是繁琐而复杂的,在ERP系统的拓展开发中,市面上出现了很多的工业ERP系统来让企业选择.这是近年来非常受欢迎的一种管理手段,依靠计算机系统的强大功能,来实现数据化的管理,企 ...

  7. Nginx搭建简易文件服务器

    Nginx搭建简易文件服务器 1.安装nginx,此处略过 2.修改nginx配置文件 详细如下 # 此处为部分文件是否有权限,使用root,则不会出现403权限问题 user root; worke ...

  8. Python3的单元测试模块Mock与性能测试模块CProfile

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_92 我们知道写完了代码需要自己跑一跑进行测试,一个写好的程序如果连测试都没有就上到生产环境是不敢想象的,这么做的人不是太自信就是太 ...

  9. 海纳百川无所不容,Win10环境下使用Docker容器式部署前后端分离项目Django+Vue.js

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_179 随着现代化产品研发的不断推进,我们会发现,几乎每个产品线都会包含功能各异的服务,而且服务与服务之间存在也会存在着错综复杂的依 ...

  10. 函数,递归以及dom简单操作

    函数 函数概述 函数就是具备某个功能的一个工具.是完成某个功能的一段代码. 系统提供了很多函数,但是并不能包含所有的功能,所以有些功能需要我们自己来写----自定义函数.函数定义好以后,就可以像系统函 ...