栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

每日一博 - Spring Boot Application as a Service

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

每日一博 - Spring Boot Application as a Service

文章目录
  • 老路子
  • 操作步骤
    • 打包插件增加executable true
    • 构建应用
    • System V Init
    • 开机启动Systemd
    • 自定义JVM参数


老路子

在Linux服务器上启动Spring Boot项目,都是通过nohup java -jar xxx 命令让程序作为后台进程执行的, 这… 也不错,但更好的方法是将Spring Boot作为Service启动


操作步骤 打包插件增加executable true
jar


    org.springframework.boot
    spring-boot-starter-parent
    1.4.0.RELEASE



    ....



    
        
            org.springframework.boot
            spring-boot-maven-plugin
            
                true
            
        
    

关键点说明

jar
  
      true
  

标示该jar为可执行,否则启动Spring Boot服务会报错.


gradle构建的SpringBoot项目,则相应地需要增加如下配置

bootJar {
     launchscript()
}

构建应用
$ mvn clean package

在应用程序的根目录中运行以下命令:

$ java -jar your-app.jar

此时,我们仍然需要使用-jar选项调用 Java 解释器。

为了增强安全性,我们首先创建一个特定用户artisan来运行服务并相应地更改可执行 JAR 文件的权限:

$ sudo useradd artisan
$ sudo passwd artisan
$ sudo chown artisan:artisan your-app.jar
$ sudo chmod 500 your-app.jar

一定要给jar包赋可执行权限


System V Init
sudo ln -s /path/to/your-app.jar /etc/init.d/your-app

上面的命令创建了一个指向可执行 JAR 文件的符号链接。您必须使用可执行 JAR 文件的完整路径,否则符号链接将无法正常工作。此链接使您能够将应用程序作为服务启动:

$ sudo service your-app start

该脚本支持标准的服务启动、停止、重启和状态命令。而且:

  • 它启动在我们刚刚创建的用户artisan下运行的服务
  • 它在/var/run/your-app/your-app.pid 中跟踪应用程序的进程 ID
  • 它将控制台日志写入/var/log/your-app.log,可能需要检查一下,以防应用程序无法正常启动


开机启动Systemd

首先,我们使用以下示例创建一个名为your-app.service的脚本并将其放在/etc/systemd/system目录中:

[Unit]
Description=A Spring Boot application
After=syslog.target

[Service]
User=baeldung
ExecStart=/path/to/your-app.jar SuccessExitStatus=143 

[Install] 
WantedBy=multi-user.target

请记住修改Description、User和ExecStart字段以匹配应用程序。此时应该能够执行上述标准服务命令。


自定义JVM参数

只需在jar包所在的同级目录下添加与jar包同名的配置文件,比如添加一个叫coder-xiaoming.conf的配置文件(名字要和jar的名字相同哦),然后在文件里面自定义JVM参数JAVA_OPTS:

export JAVA_OPTS="-Xmx256m -Xms256m"

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/286945.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号