1 功能

在linux环境下部署jar包——springboot项目。

2 分析

Springboot 和普通web 应用程序不一样,其本质上是一个 Java 应用程序,那么又如何部署呢?
通常来说,Springboot 部署会采用两种方式:全部打包成一个jar,或者打包成一个war。现在讲一下打包成 jar 部署。

3 工具

  1. Ubuntu 5.4.0-6ubuntu1~16.04.4
  2. 宝塔【神器不解释】
  3. idea2020.1

4 步骤

4.1 打包

先clean,再package:

spring boot项目centos部署 spring boot如何部署到服务器_springboot

可以在target文件夹看到jar所在:

spring boot项目centos部署 spring boot如何部署到服务器_linux_02

4.2 上传

将jar包上传到服务器的任意位置即可。

spring boot项目centos部署 spring boot如何部署到服务器_linux_03

4.3 运行

jar包,只要服务器上有jdk就可以了。这里有几种启动方式,稍作记录。

4.3.1 一次性的启动

也就是字面的意思,启动后一旦有退出黑窗之类的操作,比如ctrl+c,程序就会直接关闭。适合开发测试用。

root@iZwz92ji0aitvzpnnzbg15Z:/usr/pros/springboot/MicroCommunity# java -jar service-eureka.jar

4.3.2 后台运行

其实直接用这个方式就行了,其他的也可以不用去记。毕竟方法一个都够用。

nohup java -jar jarName-0.0.1-SNAPSHOT.jar >msg.log 2>&1 &
详解:
nohup
nohup命令运行由Command参数和任何相关的Arg参数指定的命令,忽略所有挂断(SIGHUP)信号。
在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup命令,添加 &(表示“and”的符号)到命令的尾部。
nohup是no hang up的缩写,就是不挂断的意思。
nohup命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。
该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。
在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中。
 
nohup和&的区别
&:指在后台运行,但当用户推出(挂起)的时候,命令自动也跟着退出
nohup:不挂断的运行,注意并没有后台运行的功能,,就是指,用nohup运行命令可以使命令永久的执行下去,和用户终端没有关系,
例如我们断开SSH连接都不会影响他的运行,注意了nohup没有后台运行的意思;&才是后台运行。
 
nohup java -jar jarName-0.0.1-SNAPSHOT.jar >msg.log 2>&1 &;
在上面的例子中,0:stdin (standard input),1:stdout (standard output),2:stderr (standard error);
2>&1是将标准错误(2)重定向到标准输出(&1),标准输出(&1)再被重定向输入到msg.log文件中。

简单来说就是,nohup和&是后台运行用的,msg.log是日志输出的地方。

4.3.3 强制打印日志

这算是作为第二种方式的拓展吧,把第二种方式的nohup去掉,日志会强制打印到黑窗里,无论ctrl+c还是怎么样,你都无法做其他的操作,只能靠手速强行跳出来把进程杀死。你们可以玩玩看。

4.4 关闭

总会有需要重启进程的时候,比如开发过程中修改了代码。

4.4.1 找到此进程

ps -ef|grep java

4.4.2 kill掉此进程

kill 进程号

注意:能kill就不要去-9,这是无奈之举,别养成习惯了,容易被开。