Linux 部署与管理 Spring Boot 项目保姆级全流程

一:检查yml文件配置

1.1 检查数据库配置

1.2 修改文件上传的目录

bash 复制代码
/usr/local/src/files/
private String uploadPath = "/usr/local/src/files";

1.3 检查依赖配置

1.4 将项目打成jar包

说明:先刷新maven依赖,clean,install。打的jar包在target文件夹下

二:项目上传

2.1 上传目录

bash 复制代码
cd /usr/local/src/

2.2 创建目录

在/usr/local/src/新建project文件夹

bash 复制代码
mkdir project

2.3 上传jar包

说明:将刚才打包的文件上传

2.4 运行项目

基础命令

bash 复制代码
java -jar files.jar
## 设置参数以及配置文件
nohup   java -Xms500m -Xmx500m -Xmn250m -Xss256k -server -jar evidence-service.jar  &  
ps -ef | grep evidence-service.jar
kill -9 pid

三:设置Linux服务器开机自启springboot项目

3.1 启动

在Linux上设置开机启动Java程序,例如:files.jar在Linux上启动Java程序的命令

bash 复制代码
nohup java -jar sysg.jar >/dev/null 2>&1 &

3.2 设置启动脚本

可以将程序启动的指令做成一个shell脚本,简单的做法创建一个test.sh文件,内容如下:

bash 复制代码
#!/bin/bash
 
export JAVA_HOME=/usr/local/src/jdk1.8
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$CLASSPATH
export PATH=$JAVA_HOME/bin:$PATH
 
cd /usr/local/src/project/
nohup java -jar sysg.jar > consoleMsg.log 2>&1 &

然后,最重要的一步就是修改Linux的开机启动配置文件(/etc/rc.d/rc.local

bash 复制代码
vim /etc/rc.d/rc.local

四:输出日志

先创建consoleMsg.log文件,在项目的安装目录下

bash 复制代码
touch consoleMsg.log
bash 复制代码
nohup java -jar sysg.jar > consoleMsg.log 2>&1 &
bash 复制代码
tailf -n 500 consoleMsg.log    //打印最后500行日志,并且持续跟踪日志。

tail -n 2000 consoleMsg.log | more   //分页查看最后2000行日志。

五:关闭jar包

1.找到进程号

bash 复制代码
ps -ef | grep media-service  #media-service需要关闭的jar包

2.杀掉当前进程

bash 复制代码
kill -s 9 15558

六:关闭特定端口号

1.查看特定的端口号是否被占用

bash 复制代码
netstat -tln | grep 5006

listen:表示被占用

2.查看当前端口的pid

bash 复制代码
lsof -i:5006

3.杀掉当前进程

bash 复制代码
kill -9 16322

七:通过快捷文件启动项目

7.1 编写sh文件

yaml 复制代码
#chmod u+x filename
#vi: set ff=unix ,must be done
#启动方法  
path=`pwd`
start(){ 
        nohup java -jar sysg.jar > consoleMsg.log 2>&1 &
}  
#停止方法  
stop(){  
        ps -ef|grep sysg.jar |grep -v "grep" |awk '{print $2}'|while read pid  
        do  
           kill -9 $pid  
        done  
}  
  
case "$1" in  
start)  
  start  
  ;;  
stop)  
  stop  
  ;;  
restart)  
  stop  
  start  
  ;;  
*)  
  printf 'Usage: %s {start|stop|restart}\n' "$prog"  
  exit 1  
  ;;  
esac 

7.2 执行sh文件

首先将sh文件变为可执行文件

bash 复制代码
chmod +x sysg.sh

启动sh文件

bash 复制代码
./sysg.sh restart

八:常见问题

  1. 端口被占用

    • 原因:旧进程未关闭
    • 解决:kill -9 $(lsof -t -i:8080)
  2. 权限不足

    • 解决:chmod +x start.sh
  3. Java 环境找不到

    • 解决:确认 JAVA_HOME 配置正确
相关推荐
JavaEdge.14 分钟前
Redis 连接断开后的自动重连操作
spring boot·redis·后端·lettuce·tcp keepalive
EatFan9 小时前
Spring Boot 4 落地观察:从 yudao-cloud、matecloud、JPower 看国产脚手架的升级路线与迁移清单
java·spring boot·后端·spring cloud·微服务·后端开发·jdk 21
波力海苔夹心脆67511 小时前
C# 序列化与反序列化详解:System.Text.Json、Newtonsoft.Json、XmlSerializer 用法、特性选项与安全实践
经验分享·后端·c#·json·.net
JavaGuide11 小时前
NVIDIA 又开源了!这次给 AI Agent 加上权限管控
前端·后端
excel12 小时前
prisma 如何处理数据库竞态
前端·数据库·后端
IT_陈寒14 小时前
Java线程池这破玩意,差点让我周末加班排查到凌晨
前端·人工智能·后端
弈栈录14 小时前
Java AI 应用的异步化与高并发设计
java·后端·架构
凤山老林15 小时前
Spring Boot 集成 iText 7 实现动态 PDF 生成与电子签章:合同、报表场景实战
spring boot·后端·pdf·itext7·电子签章
孙启超15 小时前
【AI开发之Rust】第 19 课:UniFFI 导出核心能力
开发语言·后端·rust