小工具      在线工具  汉语词典  dos游戏  css  js  c++  java

Linux下后台启动springboot项目

Java,Linux,linux,java,spring boot 额外说明

收录于:52天前

我们知道启动springboot项目有3种方式:

  • 运行main方法启动
  • 使用命令 mvn spring-boot:run" 从命令行启动应用程序
  • 运行“mvn package”进行打包时,会打包成可以直接运行的JAR文件。使用“java -jar”命令直接运行。

我们开发的时候,通常会用到前两种,而我们部署的时候,往往会用到第三种。但是,当我们使用java -jar来运行时,它并没有在后台运行。

下面讲一下如何在服务器后台启动springboot项目。事实上,有很多方法可以实现这一目标。下面介绍两种比较好用的方法:

nohup 和 shell

该方法主要是利用nohup命令来实现的。该命令的详细信息如下:

nohup 命令

目的:运行命令而不挂起。

语法:nohup 命令 [ Arg … ] [ & ]

说明:nohup 命令运行 C​​ommand 参数和任何相关 Arg 参数指定的命令,忽略所有挂断 (SIGHUP) 信号。使用 nohup 命令可以在注销后在后台运行程序。要在后台运行 nohup 命令,请将 & 添加到命令末尾。

例子:

nohup java -jar xxx.jar &

这样执行后,nohup会把执行结果中的日志输出到当前文件夹下面的nohup.out文件中,通常情况下我们使用以上命令即可。 
我们也可以手动指定一个参数来规定日志文件的输出地点,如:

nohup java -jar xxx.jar > catalina.out  2>&1 &

如果不需要输出日志,可以使用以下命令

nohup java -jar xxx.jar >/dev/null &

所以,我们只需要使用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
    // 通过8888端口启动
    nohup java -jar yourapp.jar --server.port=8888 &
    
    #!/bin/bash    
    // 日志输出到yucoal.log中,同时使用prod的环境配置参数
    nohup java -jar yourapp.jar --spring.profiles.active=prod >/httx/logs/yuapp.log 2>&1 &

    集成关机和启动的脚本:restart.sh。由于应用程序会先关闭再启动,因此不会造成端口冲突等问题,适合持续集成系统中的重复调用。

  • #!/bin/bash
    echo stop application
    source stop.sh
    echo start application
    source start.sh

    系统服务

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

  • 在pom.xml中添加Spring Boot插件,注意设置可执行配置
  • <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

综上所述,一般我们可以使用如下命令来后台启动jar包:

nohup java -jar xxx.jar &

 通常,在编写java项目时我们自己对日志文件进行了配置,在生产环境中我们不需要输出默认的nohup.out日志,此时我们可以使用如下命令启动jar包

nohup java -jar xxxx.jar >/dev/null 2>&1 &

转自:linux下后台启动springboot项目 - 少说 - 博客园

. . .

相关推荐

额外说明

RSA非对称加密

不可逆性算法:加密后的结果,不可逆向算出明文。如md5,加密结果固定,不安全,弱密码可以通过穷举法反推出明文。 对称加密算法:加密和解密使用同一个密码。如AES,加密结果固定。 非对加密算法:加密和解密使用不同的密码。如RSA,每次加密结果是不同的。 根

额外说明

javascript常见错误类型

1.  SyntaxError SyntaxError 表示语法错误。当错误的使用已经预定义的语法时会抛出此错误。 2. TypeError TypeError 表示类型错误。当值不是预期数据类型、调用无效方法时都会抛出此错误。 3. Reference

额外说明

Python 第九节 第五课

[toc] try...except...finally 结构 try...except...finally 结构中, finally 块无论是否发生异常都会被执行. 通常用来释放 try 块中申请的资源. 没有异常的执行结果: 发生异常的执行结果: 没

额外说明

nginx 缓存使用详解

前言 缓存的使用在各种项目中非常普遍,nginx作为一款高效的代理服务器,也提供了强大的缓存机制,试想在一些电商网站中,那些静态的html,js,css文件登数量非常庞大的情况下,加载页面的时候,如果没有缓存的话,页面将会非常慢,在这种情况下,就可以考虑

额外说明

rabbitmq消息重回队列

什么是消息的ACK 不管是哪种类型的消息中间件,都有一一种机制,即consumer端的消息ACK,通俗来讲,就是消息的确认消费机制,为什么会有这个ACK机制呢?这个和消息中间件的架构设计有关 下面是关于consumer端消息ACK的大致流程 从图也可以理

额外说明

linux部署minio对象存储集群

minio简介 MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,

额外说明

JAVA数据类型分类及初始默认值(详细)

前言 在学习Java的时候会接触到数据类型,那么在Java中有哪些数据类型呢? Java数据类型主要分为两大类 1.基本类型(primitive type) 2.引用类型(reference type) 1.基本类型里分为:数值类型、字符类型、布尔类型

额外说明

第九章:vue2中路由的使用

vue适合做大型单页面项目,利用vue-cli构建项目的时候会提示是否安装路由模块参考中文文档 一、vue中路由的使用 1、定义组件 <template> <div class="hello"> <h1 @click="info" :class="c

额外说明

[CISCN 2019华北Day1]Web1

文章目录 涉及知识点 解题过程 涉及知识点 phar反序列化 文件读取 解题过程 打开题目,注册用户为admin 进去发现有文件上传的功能,我们随便上传个图片 然后就有下载和删除两个功能 我们尝试抓包下载文件的功能 发现参数可控,我们尝试读取一下 fil

额外说明

计算机丢失XAPOFX1_4.dll文件如何解决?

其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或者损坏了,这时你只需下载这个XAPOFX1_4.dll文件进行安装(前提是找到适合的版本)

ads via 小工具