使用linux部署Spring Boot程序
使用 Linux 部署 Spring Boot 程序 本文将指导您如何正确地在 Linux 服务器上部署 Spring Boot 程序,并解决了在 Linux 服务器上部署 Spring Boot 程序时常见的问题。 一、问题描述 在 Linux 服务器上部署 Spring Boot 程序时,需要解决两个问题:一是如何保证 JDK 的正确安装,二是如何保证程序在后台运行不受 SSH 断开的影响。 二、解决方案 针对上述问题,提供了三种解决方案: ### 方案一:把 jar 包弄成系统服务(不推荐) 这种方法的缺点是容易出现服务启动不起来,因为不同的 Linux 发行版本都或多或少存在差异。 ### 方案二:使用 nohup 命令配合 kill -9 这种方法比较容易接受,也是一种折中的做法,但是要停止程序会比较麻烦,需要使用命令找到进程再使用 kill -9 。 ### 方案三:使用 screen、tmux 等方式(推荐) 这种方法综合考虑是比较科学的,因为它提供了统一的管理多个会话的界面和相应的功能,操作起来比较简单些,缺点是需要一点点的学习成本。 tmux 的常用命令包括: * `tmux new -s session-name`:新建会话 * `tmux a -t session-name`:接入指定会话 * `tmux detach`:断开当前会话 * `tmux kill-session -t session-name`:关闭会话 * `tmux ls`:显示所有会话 screen 的常用命令包括: * `screen -S window-name`:新建会话 * `screen -r 会话编号或名称`:接入指定会话/重新连接会话 * `screen -ls`:显示所有会话 * `Ctrl+a b`:分离当前会话 * `Ctrl+a k`:以下是它们的区别,虽说 tmux 比较先进,但究竟如何选择还是看大家的使用习惯。 tmux 和 screen 很像,但比 screen 更好。要问好在哪里,简单的回答就是虽然与 screen 的功能相同,但是 tmux 设计得更好。screen 虽然可用,但是很不稳定。 tmux 超越 screen 的地方包括: * screen 的项目大体上已经终止了,并且代码中有大量的问题 * tmux 是一个活跃的项目,并且其代码库经常进行更新 * tmux 使用的是真正的客户端/服务器模型,而 screen 只是模拟了这种模型的行为 * tmux 同时支持 emacs 和 vim 的快捷键 * tmux 支持自动重命名窗口 * tmux 可以高度的脚本化 * tmux 的窗口分割功能更加先进 三、Spring Boot 的打包和部署 使用 Maven 打包 Spring Boot 程序非常方便,只需要在 pom.xml 文件中添加相应的配置: ```xml <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <!--fork : 如果没有该项配置,devtools不会起作用,即应用不会restart --> <fork>true</fork> <!-- 可选的配置 --> <executable>true</executable> </configuration> </plugin> </plugins> </build> ``` 然后,使用 Maven install 命令打包程序,找到相应的 jar 文件,重命名后上传到 Linux 服务器,授权一下就行。这样应用就启动了,即使命令行关闭了或者从 SSH 断开也不会影响程序的正常运行。
- 粉丝: 4
- 资源: 965
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于Spring Boot框架的博客系统.zip
- (源码)基于Spring Boot框架的博客管理系统.zip
- (源码)基于ESP8266和Blynk的IR设备控制系统.zip
- (源码)基于Java和JSP的校园论坛系统.zip
- (源码)基于ROS Kinetic框架的AGV激光雷达导航与SLAM系统.zip
- (源码)基于PythonDjango框架的资产管理系统.zip
- (源码)基于计算机系统原理与Arduino技术的学习平台.zip
- (源码)基于SSM框架的大学消息通知系统服务端.zip
- (源码)基于Java Servlet的学生信息管理系统.zip
- (源码)基于Qt和AVR的FestosMechatronics系统终端.zip