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 | grep :8080
  • 关闭程序kill pid
$ kill 13966

3.war包

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

发布了381 篇原创文章 · 获赞 85 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/weixin_40763897/article/details/105521123