zoukankan      html  css  js  c++  java
  • 在CentO7系统上配置Springboot项目jar包开机自启动

    官方文档地址: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
    
  • 相关阅读:
    11.29
    11.28
    11.24
    11.21
    11.17
    11.15
    11.14
    11.9
    11.5
    11.3
  • 原文地址:https://www.cnblogs.com/sanduzxcvbnm/p/14744910.html
Copyright © 2011-2022 走看看