`
frank1998819
  • 浏览: 758076 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类

JAR(Spring Boot)应用的后台运行配置(转)

 
阅读更多

酱油一篇,整理一下关于Spring Boot后台运行的一些配置方式。在介绍后台运行配置之前,我们先回顾一下Spring Boot应用的几种运行方式:

  • 运行Spring Boot的应用主类
  • 使用Maven的Spring Boot插件mvn spring-boot:run来运行
  • 打成jar包后,使用java -jar运行

我们在开发的时候,通常会使用前两种,而在部署的时候往往会使用第三种。但是,我们在使用java -jar来运行的时候,并非后台运行。下面我们分别针对Windows和Linux/Unix两种环境,整理一下如何配置后台运行的方法。

Windows

Windows下比较简单,我们可以直接使用这款软件:AlwaysUp。如下图所示,简单、暴力、好用。

配置方式很简单,我们只需要把Spring Boot应用通过mvn install打成jar包,然后编写一个java -jar yourapp.jar的bat文件。再打开AlwaysUp,点击工具栏的第一个按钮,如下图所示,选择上面编写的bat文件,并填写服务名称。

完成了创建之后,在列表中可以看到我们配置的服务,通过右键选择Start xxx就能在后台将该应用启动起来了。

Linux/Unix

下面我们来说说服务器上该如何来配置。实际上,实现的方法有很多种,这里就列两种还比较好用的方式:

nohup和Shell

该方法主要通过使用nohup命令来实现,该命令的详细介绍如下:

nohup 命令

用途:不挂断地运行命令。

语法:nohup Command [ Arg … ][ & ]

描述:nohup 命令运行由 Command 参数和任何相关的 Arg 参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 &到命令的尾部。

所以,我们只需要使用nohup java -jar yourapp.jar &命令,就能让yourapp.jar在后台运行了。但是,为了方便管理,我们还可以通过Shell来编写一些用于启动应用的脚本,比如下面几个:

  • 关闭应用的脚本:stop.sh
#!/bin/bash
PID=$(ps -ef | grep yourapp.jar | grep -v grep | awk '{ print $2 }')
if [ -z "$PID" ]
then
    echo Application is already stopped
else
    echo kill $PID
    kill $PID
fi
  • 启动应用的脚本:start.sh
#!/bin/bash
nohup java -jar yourapp.jar --server.port=8888 &
  • 整合了关闭和启动的脚本:run.sh,由于会先执行关闭应用,然后再启动应用,这样不会引起端口冲突等问题,适合在持续集成系统中进行反复调用。
#!/bin/bash
echo stop application
source stop.sh
echo start application
source start.sh

系统服务

在Spring Boot的Maven插件中,还提供了构建完整可执行程序的功能,什么意思呢?就是说,我们可以不用java -jar,而是直接运行jar来执行程序。这样我们就可以方便的将其创建成系统服务在后台运行了。主要步骤如下:

  • 在pom.xml中添加Spring Boot的插件,并注意设置executable配置
<build> 
  <plugins> 
    <plugin> 
      <groupId>org.springframework.boot</groupId>  
      <artifactId>spring-boot-maven-plugin</artifactId>  
      <configuration> 
        <executable>true</executable> 
      </configuration> 
    </plugin> 
  </plugins> 
</build>
  • 在完成上述配置后,使用mvn install进行打包,构建一个可执行的jar包

  • 创建软连接到/etc/init.d/目录下

sudo ln -s /var/yourapp/yourapp.jar /etc/init.d/yourapp
  • 在完成软连接创建之后,我们就可以通过如下命令对yourapp.jar应用来控制启动、停止、重启操作了
/etc/init.d/yourapp start|stop|restart

 

分享到:
评论

相关推荐

    基于spring boot的后台管理系统源码.rar

    9. **Docker化部署**:Spring Boot的应用通常会被打包为可执行的jar文件,可以很方便地部署到Docker容器中。源码中可能包含Dockerfile,用于构建和部署应用。 10. **前后端分离**:虽然源码主要关注后端,但很可能...

    linux的spring boot项目的启动停止脚本

    Spring Boot是一个基于Java的微服务框架,它极大地简化了构建独立运行的Java应用的方式。这些应用程序可以被设计为“可执行的”JAR或WAR文件,可以直接通过`java -jar`命令启动。然而,在生产环境中,我们往往需要更...

    SpringBoot+vue+SpringSecurity电商后台管理系统

    通过自动配置、起步依赖等特性,Spring Boot允许开发者快速地创建独立运行的应用。在电商后台管理系统中,Spring Boot可以用来构建RESTful API,提供后端服务,如商品管理、订单处理、用户管理等。 其次,Vue.js是...

    spring boot部署启动脚本

    1. **设置环境变量**:如JAVA_HOME,SPRING_BOOT_APP_JAR(指向Spring Boot应用的jar文件)等,这些变量有助于确定Java运行时环境和应用的位置。 2. **检查Java是否已安装**:通常会通过`java -version`命令来确认...

    spring boot+thymeleaf+mybatis+mysql

    8. 部署:打包项目为jar或war文件,部署到服务器,如Tomcat或直接使用Spring Boot的内置服务器运行。 通过以上步骤,我们可以构建一个完整的博客系统,其中Spring Boot作为核心框架,Thymeleaf处理前端展示,...

    【42】使用dubbo、spring-boot等技术实现互联网后台服务项目架构视频教程 .txt

    - **自动配置**:Spring Boot可以根据添加的jar包自动配置Spring环境,无需复杂的XML配置。 #### 四、Dubbo与Spring Boot的结合使用 在实际项目中,通常会将Dubbo和Spring Boot结合起来使用,以此来构建更为强大的...

    基于spring boot + element-ui的后台管理系统.zip

    9. **Actuator监控**:Spring Boot Actuator提供了丰富的健康检查和应用监控功能,帮助开发者实时了解应用运行状况。 10. **Docker化部署**:Spring Boot应用可以被打包为可执行的JAR或WAR文件,通过Docker容器化...

    spring boot+mybatis+layui实现的项目基本框架

    Spring Boot简化了Spring的应用初始设置,通过自动配置、起步依赖等特性,让开发者能快速创建独立运行的Spring应用。在本项目中,我们需要添加Spring Boot的web和data-jpa起步依赖,以支持HTTP请求处理和JPA数据...

    spring boot &amp; mongoDB后台系统.zip

    通过自动配置、起步依赖和运行时嵌入式服务器,Spring Boot让开发者可以快速地搭建可执行的独立应用。 2. **MongoDB简介** MongoDB是一款基于分布式文件存储的开源文档数据库,它提供了高性能、高可用性和易扩展性...

    spring boot+mybatis+spring mvc整合开发超市订单后台管理系统

    spring boot+mybatis+spring mvc整合开发超市订单后台管理系统 项目描述 超市订单管理系统 运行环境 jdk8(jdk7)+mysql+Eclipse+maven+tomcat7 项目技术(必填) springboot+spring mvc+mybatis+jquery+jsp ...

    spring boot+layui开发物业后台管理系统.rar

    在物业后台管理系统中,我们可以利用Spring Boot的内置Tomcat服务器,无需额外配置即可实现Web应用的运行。同时,Spring Boot的自动配置功能能够自动识别并配置各种依赖,如数据访问层的JPA、事务管理等,大大提高了...

    spring boot文件夹文件监听程序

    - Spring Boot提供了打包为可执行JAR的功能,通过`mvn clean package spring-boot:repackage`命令生成`jar`文件。 - Windows环境下,可以通过`java -jar app.jar`运行JAR,但为了方便,可以创建一个批处理(`.bat`...

    Spring Boot+Nginx实现负载均衡1

    使用 nohup 命令可以让 Spring Boot 项目在后台运行: ``` nohup java -jar demo1.jar &gt; Log.log 2&gt;&1 & nohup java -jar demo2.jar &gt; Log.log 2&gt;&1 & ``` 启动 Nginx 启动 Nginx,以便它可以将请求分配到两个 ...

    spring boot 项目框架

    Spring Boot 是一个基于 Spring 框架的快速开发工具,旨在简化初始设置和常见的配置问题,使得开发者可以更快地启动和运行应用程序。Spring Boot 的核心理念是“约定优于配置”,它通过内建默认配置,降低了项目的...

    spring-boot-2.4.3.tar.gz

    - **启动命令**:通过`java -jar spring-boot-2.4.3.jar`命令启动Spring Boot应用,或将其设置为系统服务,实现后台自动启动。 - **日志管理**:Linux环境下,日志管理非常重要,可以配置日志框架(如Logback或Log4j...

    基于spring boot+mybatis的个人博客(前端+后台管理系统).zip

    【标题】"基于Spring Boot+MyBatis的个人博客(前端+后台管理系统)"是一个完整的Web应用程序项目,它结合了Spring Boot的便捷性和MyBatis的灵活性,为开发者提供了一个快速构建个人博客平台的框架。Spring Boot简化...

    SpringBoot讲义.pdf

    4. 独立运行的可执行文件:Spring Boot应用可以打包成一个可执行的jar文件,直接运行。 5. 无需代码生成,无XML配置:Spring Boot不需要任何代码生成,且无需在项目中管理XML配置,可以使用Java配置。 6. 应用监控...

    spring boot + maven + mybatis + layui

    此外,Spring Boot内置了Tomcat服务器,使得我们可以直接运行jar包来启动应用,大大提高了开发效率。 **Maven** Maven是Apache项目下的一个构建工具,主要用于管理Java项目的构建、报告和文档生成。它通过Project ...

    [SpringBoot2.X]29- SpringBoot项目打包与多环境配置

    打包好的Spring Boot应用可以通过`scp`或`rsync`等工具上传到远程服务器,然后使用`nohup`或`screen`命令在后台运行。确保服务器上的Java环境已正确配置,并且具备运行权限。 总的来说,打包Spring Boot项目以及...

    自动上传运行spring boot项目.zip

    Spring Boot是基于Spring框架的快速开发工具,它内置了大量默认配置,简化了传统的Spring应用的搭建和配置。通过Spring Boot,开发者可以更专注于业务逻辑,而不是基础设施的设置。 自动化部署在现代软件开发中扮演...

Global site tag (gtag.js) - Google Analytics