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 配置正确
相关推荐
GetcharZp5 小时前
抛弃低效SSH!这套Ansible+Web可视化神器,让你天天准点下班!
后端
weixin_446260859 小时前
HACO:面向动态部署环境的对冲式智能计算可靠多智能体调度框架
后端·python·flask
ttwuai10 小时前
Cursor 生成 CRUD 后,Go 后台接口别只测 200:JWT、RBAC 和 tenant_id 怎么验
开发语言·后端·golang
用户83562907805110 小时前
Python 实现 Excel 页面布局与打印设置自动化
后端·python
用户99314415798410 小时前
微服务框架中获取用户信息
后端
xuanWb10 小时前
手写一个 LLM API 网关:Anthropic 与 OpenAI 协议转换的完整实现
后端
苍何10 小时前
给 Codex 换皮肤这门生意,被我开源了
后端
用户83562907805110 小时前
Python 实现 Excel 命名范围(Named Range)的创建与管理
后端·python
程序员David11 小时前
我让 Claude 从架构文档一路干到代码,踩了三个坑才摸清边界
后端