SpringBoot项目发布到服务器的两种方式war和jar

Posted SamDlex

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot项目发布到服务器的两种方式war和jar相关的知识,希望对你有一定的参考价值。


1.前言

SpringBoot项目在开发阶段,执行​​mvn spring-boot:run​​运行项目,达到快速检验功能的目的。在生产环境中,则不推荐这样做,提供两种式来发布:jar包和war包。本章的实验是在ubuntu18.04操作系统上进行的。

2.jar包(推荐)

$ nohup java -jar XXX.jar &

命令解释:

  • ​java -jar XXX.jar​​:用这种的方式启动程序,当前终端窗口会被锁定,不能进行其他操作,按CTRL + C或直接关闭终端窗口都会让程序退出。
  • ​java -jar XXX.jar &​​:这种方式的话,当前终端窗口不会被锁定,能进行其他操作,但是当窗口关闭时,程序会退出。
  • ​nohup java -jar XXX.jar &​​:只这种方式,才能够使当前终端不会被锁定,可以进行其他操作,即使终端关闭或账户退出,也不会中止程序运行。程序仍然在后台运行。
  • &表示程序在后台运行。
  • nohup的作用是运行后面的命令,忽略挂起信号。
    如果标准输入是终端,那么从一个无法读的文件重定向它(其实就是忽略它);
    如果标准输出是终端,那么将输出追加到$HOME/nohup.out文件($HOME是家目录,在我的实验环境中就是/home/kyun/nohup.out),可能的话;
    如果是错误的话,那么重向它到标准输出。我们也可以将输出重定向到我们指定的文件:
$ nohup java -jar XXX.jar >tmp.txt &

这种方式的好处就是当终端关闭或账户退出系统时,程序仍然在后台运行。

3.1辅助命令

  • 可通过jobs命令查看后台运行任务
$ jobs
[1]+ Running nohup java -jar SpringBootGroceryDemo.jar > tmp.txt &
  • jobs命令会列出所有后台执行的作业,并且每个作业前面都有个编号。如果想将某个作业调回前台控制,只需要执行命令​​fg 编号​​即可,如:
$ fg 1
nohup java -jar SpringBootGroceryDemo.jar > tmp.txt
  • 使用​​ps aux | grep 程序名​​查看web的pid
$ ps aux | grep SpringBootGroceryDemo
kyun 13966 2.3 4.2 5165192 345532 pts/4 Sl 00:50 0:15 java -jar SpringBootGroceryDemo.jar
  • 查看某端口占用的线程的pid
$ netstat -nlp |
  • 关闭程序​​kill pid​
$ kill

3.war包

请参考​​《SpringBoot项目打包war发布到Jetty9》​


以上是关于SpringBoot项目发布到服务器的两种方式war和jar的主要内容,如果未能解决你的问题,请参考以下文章

Springboot以Tomcat为容器实现http重定向到https的两种方式

nginx开启ssl并把http重定向到https的两种方式

springboot 注册服务注册中心(zk)的两种方式

SpringBoot中统一API返回格式的两种方式

Springboot以Tomcat为容器实现http重定向到https的两种方式

springboot 配置文件读取的两种方式,以及使用到的注解解释