springboot:基础学习一 linux下后台启动springboot项目

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

  • 运行主方法启动
  • 使用命令 mvn spring-boot:run”在命令行启动该应用
  • 运行“mvn package”进行打包时,会打包成一个可以直接运行的 JAR 文件,使用“java -jar”命令就可以直接运行。

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

下面我们来说说服务器上如何后台启动springboot项目。实际上,实现的方法有很多种,这里就列两种还比较好用的方式:

nohup和Shell

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

nohup 命令

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

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

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

示例:


1

nohup java -jar xxx.jar &

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


1

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

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


1

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

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

  • 关闭应用的脚本:stop.sh


    1

    2

    3

    4

    5

    6

    7

    8

    9

    #!/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


    1

    2

    #!/bin/bash

    nohup java -jar yourapp.jar --server.port=8888 &

  • 整合了关闭和启动的脚本:run.sh,由于会先执行关闭应用,然后再启动应用,这样不会引起端口冲突等问题,适合在持续集成系统中进行反复调用。


    1

    2

    3

    4

    5

    #!/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配置


    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    <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/目录下

    1

    sudo ln -s /var/yourapp/yourapp.jar /etc/init.d/yourapp

  • 在完成软连接创建之后,我们就可以通过如下命令对yourapp.jar应用来控制启动、停止、重启操作了


    1

    /etc/init.d/yourapp start|stop|restart

综上,一般情况下我们使用以下命令即可:


1

nohup java -jar xxx.jar &

  

原文地址:https://www.cnblogs.com/2019lgg/p/11023646.html

时间: 2024-10-07 01:04:08

springboot:基础学习一 linux下后台启动springboot项目的相关文章

linux下后台运行node-js项目

安装pm2,这里默认你已经安装了node.js和npm npm install pm2 -g 创建软连接 全局path路径 echo $PATHpm2安装路径-安装pm2时,可看到pm2安装路径建立软连接:ln -s /usr/sbin/nodejs/bin/pm2 /usr/local/bin/ # 前一个为pm2安装目录,后一个选择path内任意一个:分割的地址查看是否安装成功:pm2 list 启动项目pm2 start app.js 原文地址:https://www.cnblogs.co

[Linux基础环境/软件]Linux下安装mysql

我是使用免安装的包mysql-5.5.28-linux2.6-x86_64.tar.gz(在http://dev.mysql.com/downloads/可以下载到最新的包)的.直接解压,然后配置,初始化数据库,启动即可. 安装步骤有: 解压和建立软链: 配置文件和配置参数: 初始化数据库: 启动和关闭: 建立数据库用户和授权. 1. 解压和建立软链: #tar xzvf mysql-5.5.28-linux2.6-x86_64.tar.gz #在/usr/local目录下 #ln -s mys

Linux 程序设计学习笔记----Linux下文件类型和属性管理

转载请注明出处:http://blog.csdn.net/suool/article/details/38318225 部分内容整理自网络,在此感谢各位大神. Linux文件类型和权限 数据表示 文件属性存储结构体Inode的成员变量i_mode存储着该文件的文件类型和权限信息.该变量为short int类型. 这个16位变量的各个位功能划分为: 第0-8位为权限位,为别对应拥有者(user),同组其他用户(group)和其他用户(other)的读R写W和执行X权限. 第9-11位是权限修饰位,

数据库学习之--Linux下Mysql源码包安装

数据库学习之--Linux下Mysql源码包安装 系统环境: 操作系统:RedHat EL6 DB Soft:  Mysql 5.6.4-m7     Mysql 在linux下的安装方式有两种版本,一种为Binary(二进制),另外一种为Source(源码包),本文为Source Install方式. 1.安装前的准备 解压安装包 [[email protected] ~]$ ls mysql-5.6.4-m7  mysql-5.6.4-m7.tar.gz  mysql-5.6.4-m7.ta

linux&nbsp;下&nbsp;apache启动、停止、重启命令

原文:linux 下 apache启动.停止.重启命令 基本的操作方法: 本文假设你的apahce安装目录为/usr/local/apache2,这些方法适合任何情况 apahce启动命令: 推荐/usr/local/apache2/bin/apachectl start apaceh启动 apache停止命令 /usr/local/apache2/bin/apachectl stop   停止 apache重新启动命令: /usr/local/apache2/bin/apachectl res

Linux下后台运行任务

http://www.cnblogs.com/xianghang123/archive/2011/08/02/2125511.html http://blog.csdn.net/u012700515/article/details/27113313 http://www.ibm.com/developerworks/cn/linux/l-cn-nohup/ 将一个正在运行的任务放到后台,并且关机后任能运行 ctrl+z jobs #查找jobs的id disown -h %num #num为jo

linux下nginx启动停止重启控制脚本

这是控制nginx服务的脚本文件,包括控制nginx的启动.重启.停止.平滑重启.对配置文件的额检查. [[email protected] ~]# cat nginx.sh #!/bin/env bash # description:nginx server   ###必须加描述 # nginx - this script is used to control nginx service # processname nginx # chkconfig: - 85 15 # edit by su

linux学习之 Linux下的Eclipse安装

①下载Eclipse的Linux版  http://www.eclipse.org/downloads/ 选择Linux版  前三个随意选择一个连接  选择系统的版本32位的还是64位的 点击下载 ②如果是用的windows系统下载的  将文件拷贝到Linux系统里面 ,如果是Linux系统直接下载跳过此步骤    拷贝的方法:①通过samba服务                    ②U盘   比如 在/home下面建立一个Eclipse文件夹   打开终端 mkdir /home/ecli

如何解决linux下apache启动时httpd: apr_sockaddr_info_get() failed for 报错

今天在家里的RHLE5.5上安装apache的时候,先用user1用户./configure命令配置,然后才用root用户make && make install,结果apache起来的时候就报如下错误: httpd: apr_sockaddr_info_get() failed for bogon httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 fo