CentOS环境下部署Springboot项目的jar包开机自启动。

部署环境

  • Centos 7.5
  • Springboot 2.1.x

操作步骤

修改pom

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

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

主要是executable这个标签

赋予jar包权限

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

注释:

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

创建jar包的软连接

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

注释:

  • demo即为自定义的服务名称
  • 删除软连接可以使用 rm -rf /etc/init.d/demo

链接jdk下的java到sbin目录下

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

注释:

  • 非绿色版本的jdk可以忽略该步骤
  • 不执行上述的命令,在启动服务时会出现java找不到的问题

创建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,就是日志的存储位置必须是已经存在,否则启动报错

  • conf文件配置参数官网地址

添加开机启动

$ chkconfig demo on

$ service demo start

// 或者使用下面的命令

$ systemctl enable demo

$ systemctl start demo

重启验证是否可用:

$ reboot

$ jps

移除开机自启动

$ service demo stop

$ chkconfig demo off

//或者使用下面的命令

$ systemctl disable demo

$ systemctl stop demo

问题处理

生成的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>

Centos-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. 在CentO7系统上配置Springboot项目jar包开机自启动

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

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

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

  5. SpringBoot项目jar包启动脚本

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

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

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

  7. Springboot 打jar包分离lib,配置文件正确方式(二)

    Springboot 打jar包分离lib,配置文件正确方式(二) 背景 从<Springboot 打jar包分离lib,配置文件正确方式>中,可以达到把配置文件和依赖第三方的jar包分离 ...

  8. Docker部署web项目-jar包

    一.Docker部署web项目-jar包 ①搜索mysql镜像 docker search mysql ②拉取镜像至本地仓库(本文选取的mysql镜像5.7版本) docker pull mysql/ ...

  9. SrpingBoot入门到入坟01-HelloWorld和SpringBoot打Jar包

    第一个SpringBoot: 建立一个maven项目: 再pom.xml里面增加依赖: <?xml version="1.0" encoding="UTF-8&qu ...

随机推荐

  1. 测试 USB 存储设备读写性能(Mb/s),平均读写速度等

    1.将U盘(USB3.0)插入被测试机器,假定识别设备为sdc2.创建vfat文件系统分区/dev/sdb1分区容量大于30GBumount /dev/sdc1mkfs -t vfat /dev/sd ...

  2. 思考一个问题STM32的

    如果一个定时中断刚刚进入中断服务函数 但是服务函数执行时间太长   又一次触发了中断 会怎样

  3. flink Checkpoint优化

    一.设置最小时间间隔 当flink应用开启Checkpoint功能,并配置Checkpoint时间间隔,应用中就会根据指定的时间间隔周期性地对应用进行Checkpoint操作.默认情况下Checkpo ...

  4. [Django高级之批量插入数据、分页器组件]

    [Django高级之批量插入数据.分页器组件] 批量插入数据 模板层models.py from django.db import models class Books(models.Model): ...

  5. 使用vue-i18n实现中英文切换(内含动态属性的绑定)

    最近做学生管理系统,因为有国外的学生,所以要进行中英文切换,查了查Vue中使用vue-i18n插件能够实现网页的中英文切换,学习内容如下: 一.下载vue-i18n插件 npm install vue ...

  6. Bringing up interface eth0: Error: No suitable device found: no device found for connection 'System eth0'.

    在VMware的虚拟机中克隆CentOS,在重启网卡的时候报错:   Shutting down loopback interface: [ OK ] Bringing up loopback int ...

  7. ZooKeeper学习笔记二:API基本使用

    Grey ZooKeeper学习笔记二:API基本使用 准备工作 搭建一个zk集群,参考ZooKeeper学习笔记一:集群搭建. 确保项目可以访问集群的每个节点 新建一个基于jdk1.8的maven项 ...

  8. MLIR中间表示和编译器框架

    MLIR中间表示和编译器框架 TensorFlow生态系统包含许多在软件和硬件堆栈的多个级别上运行的编译器和优化器.作为TensorFlow的日常用户,使用不同类型的硬件(GPU,TPU,移动设备)时 ...

  9. Deep Learning部署TVM Golang运行时Runtime

    Deep Learning部署TVM Golang运行时Runtime 介绍 TVM是一个开放式深度学习编译器堆栈,用于编译从不同框架到CPU,GPU或专用加速器的各种深度学习模型.TVM支持来自Te ...

  10. 基于自动驾驶车辆的NVIDIA-TensorRT推理实时优化

    基于自动驾驶车辆的NVIDIA-TensorRT推理实时优化 Optimizing NVIDIA TensorRT Conversion for Real-time Inference on Auto ...