Centos-Springboot项目jar包自启动
阅读原文时间:2023年07月08日阅读:1

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

  • Centos 7.5
  • Springboot 2.1.x

修改pom

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

<plugin>&nbsp;&nbsp;&nbsp;
    <groupId>org.springframework.boot</groupId>&nbsp;&nbsp;&nbsp;
    <artifactId>spring-boot-maven-plugin</artifactId>&nbsp;&nbsp;&nbsp;
    <configuration>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        <executable>true</executable>&nbsp;&nbsp;&nbsp;
    </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&nbsp;demo&nbsp;start

// 或者使用下面的命令

$ systemctl enable&nbsp;demo

$ systemctl start&nbsp;demo

重启验证是否可用:

$ reboot

$ jps

移除开机自启动

$ service&nbsp;demo&nbsp;stop

$ chkconfig&nbsp;demo&nbsp;off

//或者使用下面的命令

$ systemctl disable&nbsp;demo

$ systemctl stop&nbsp;demo

问题处理

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

解决方案:

  • 指定demo.log文件位置,不指定的话默认在/var/log目录下

  • 使用logback日志时,生产环境一定要将console去掉,不然会导致demo.log越来越大