Spring Boot项目(Maven\Gradle)三种启动方式及后台运行详解

Spring Boot项目三种启动方式及后台运行详解

1 Spring Boot项目三种启动方法

  • 运行Application.java类中的Main方法
  • 项目管理工具启动
    • Maven项目:mvn spring-boot:run
    • Gradle项目:gradle run
  • 打包成Jar文件启动:java -jar [项目名称].jar
    • Maven项目:mvn package,在Target目录下生成Jar
    • Gradle项目:gradle build,在build/libs目录下生成Jar

2 Spring Boot项目后台启动

在项目开发阶段,通常会使用前两种方法启动,而在部署的时候通常会使用第三种方法

然而java -jar [项目名称].jar 命令只能在前台运行项目,当执行其他操作或者关闭SSH会话时,项目运行终止

2.1 安装配置nohup命令

nohup作用:使程序在服务器后台执行,执行程序的命令不依赖ssh界面。
用法:nohup 需执行命令 &

  1. 查询nohup是否安装
which nohup # 查看/usr/bin目录下有没有nohup命令
  1. 下载安装nohup
yum install coreutils
  1. 查找下载的nohup
cd /usr/bin
which nohup
  1. 配置nohup路径
vi ~/.bash_profile 
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin
PATH=$PATH:/usr/bin
export PATH
  1. 立即生效配置
source ~/.bash_profile 
  1. 使用nohup命令
nohup  [需要后台执行的命令]  &

2.2 nohup命令

  • 用途:不挂断的运行命令
  • 语法:nohup command [Arg...] [&]
  • 描述:nohup 命令由需要后台执行的Command命令及其参数[Arg…]组成,忽略所有挂断(SIGHUP)信号。
  • 示例:nohup java -jar xxx.jar &

nohup会把执行结果中的日志输出到当前文件夹下面的nohup.out文件中,通常情况下我们使用以上命令即可

nohup java -jar xxx.jar > catalina.out  2>&1 & # 指定日志文件输出地址
nohup java -jar xxx.jar >/dev/null & # 关闭日志输出

2.3 挂断nohup命令

ps -ef # 查看系统进程,并记下java -jar xxx.jar命令的PID
kill -9 [PID] # 强制结束进程

3 应用启动、停止、重启shell脚本

  • 启动应用的脚本:start.sh
#!/bin/bash
nohup java -jar yourapp.jar --server.port=8888 &
  • 关闭应用的脚本: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
  • 整合了关闭和启动的脚本:run.sh,由于会先执行关闭应用,然后再启动应用,这样不会引起端口冲突等问题,适合在持续集成系统中进行反复调用。
#!/bin/bash
echo stop application
source stop.sh
echo start application
source start.sh

4 创建系统服务

在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

猜你喜欢

转载自blog.csdn.net/qq_40507857/article/details/106437803