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 配置正确
相关推荐
空山返景3 分钟前
Dify RAG知识库-自部署完整指南
后端
苏三的开发日记21 分钟前
如何规避死锁
后端
该用户已不存在23 分钟前
用 Claude Code Agents 与 CI/CD 搭建自动化研发团队(Part 3)
后端·ai编程·claude
豹哥学前端25 分钟前
agent智能体经典范式构建
人工智能·后端
胡志辉1 小时前
邮件中点击“加载图片”,你的IP地址已经被泄漏
前端·后端·安全
拽着尾巴的鱼儿2 小时前
spring 动态代理
java·后端·spring
Rust研习社2 小时前
Rust 的 move 语义,一次讲透
后端·rust·编程语言
IT_陈寒2 小时前
用了Vue的动态组件之后,我被坑得找不着北
前端·人工智能·后端
undefinedType2 小时前
深入理解 Rails includes:为什么一个 order(users.xxx) 会导致超级 JOIN 性能问题
后端
baviya3 小时前
用 Spring AI Alibaba JManus 构建零售智能客服工单系统:从 0 到日处理 10 万单
后端·ai编程