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 配置正确
相关推荐
风象南8 小时前
我把大脑开源给了AI
人工智能·后端
橙序员小站13 小时前
Agent Skill 是什么?一文讲透 Agent Skill 的设计与实现
前端·后端
怒放吧德德13 小时前
Netty 4.2 入门指南:从概念到第一个程序
java·后端·netty
雨中飘荡的记忆15 小时前
大流量下库存扣减的数据库瓶颈:Redis分片缓存解决方案
java·redis·后端
开心就好202516 小时前
UniApp开发应用多平台上架全流程:H5小程序iOS和Android
后端·ios
悟空码字16 小时前
告别“屎山代码”:AI 代码整洁器让老项目重获新生
后端·aigc·ai编程
小码哥_常16 小时前
大厂不宠@Transactional,背后藏着啥秘密?
后端
奋斗小强16 小时前
内存危机突围战:从原理辨析到线上实战,彻底搞懂 OOM 与内存泄漏
后端
小码哥_常17 小时前
Spring Boot接口防抖秘籍:告别“手抖”,守护数据一致性
后端
心之语歌17 小时前
基于注解+拦截器的API动态路由实现方案
java·后端