打包部署spring boot项目到Linux并后台运行


这里讲简单的小型项目通常的部署方式,即不使用docker和k8s类似的那一套自动化运维方式。一般地,对于spring boot 项目,我们会把开发测试好的项目打成可执行的jar包,使用scp等方式将jar包上传至生产服务器,这样只需Linux上有Java执行环境即可运行。

如何打包

  • 用maven插件,先clean ,然后package 即可;【idea常用方式】
  • 编辑运行,右键项目 run as ,在maven build 中的goals栏填 clean package 即可;【eclipse常用】

如何上传

  • 使用 mobaxterm,ssh到服务器后,可以直接sftp上传,很方便
  • 使用puttyxshell等 ,ssh到服务器 可用scp方式上传文件,scp命令可参考这里

如何运行

java -jar xxx.jar

这种方式的问题是会占用当前console,且当前console关闭后,程序也shutdown了

nohup java -jar xxx.jar &

这种方式更好,可以让程序在后台运行,不会占用当前console,且会将程序运行的日志输出为一个默认的 .out 日志文件,如果你的项目中配置了自己的日志文件打印规则及路径,则可使用以下命令忽略之:

nohup java -jar xxxx.jar >/dev/null 2>&1 &

如何停止

ps -ef | grep java  #获取Java项目的pid
kill -9 pid  #杀死进程

觉得麻烦?可以写点半自动脚本

例如:(例子来源见文末参考)
start.sh

#!/bin/bash
nohup java -jar yourapp.jar &

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

可以写到一个脚本里更方便,如果还觉得不够省事儿,就上docker吧😂,额,docker似乎也没省多少事。不过对于小项目来说,上k8s就有点高射炮打蚊子的意思了,吃资源不说,运维起来也感觉完全没必要。个人感觉k8s还是微服务很多、涉及分布式之类的大点的项目比较合适。

以下文章也不错,供参考,一起进步!

linux下后台启动springboot项目
Linux中运行SpringBoot项目,永久运行

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值