linux后台运行java项目/ jar包:nohup 命令

1.提出问题

我们把一个 SpringBoot 工程导出为 jar 包,jar 包上传到阿里云 ECS 服务器上,使用 java -jar xxx-xxx.jar 命令启动这个 SpringBoot 程序。此时我们本地的 xshell 客户端必须一直开着,一旦 xshell 客户端关闭,java -jar xxx-xxx.jar 进程就会被结束,SpringBoot 程序就访问不了了。

所以我们希望启动 SpringBoot 的 jar 包之后,对应的进程可以一直运行,不会因为 xshell 客户端关闭而被结束。

2.解决方案

2.1 前台、后台运行

默认情况下 Linux 命令都是前台运行的,前台运行的特点是前面命令不执行完,命令行就一直被前面的命令占用,不能再输入、执行新的命令。

但是以后台方式运行并不能解决前面提出的问题:我们的 shell 客户端(例如:xshell)和服务器断开连接后,SpringBoot 进程会随之结束,这显然不满足我们部署运行项目的初衷。

2.2 不挂断运行

所谓"不挂断"就是指客户端断开连接后,命令启动的进程仍然运行。nohup 命令就是"no hang up"的缩写。使用nohup 命令启动 SpringBoot 微服务工程的完整写法是:

shell 复制代码
nohup java -jar spring-boot-demo.jar>springboot.log 2>&1 &
相关推荐
逻辑驱动的ken17 小时前
Java高频面试考点场景题11
java·深度学习·面试·职场和发展·高效学习
学习3人组17 小时前
面向对象编程:反射(Reflection)原理与应用详解
java
斯维赤17 小时前
每天学习一个小算法:快速排序
java·python·学习·算法·排序算法
天码-行空17 小时前
深入拆解 Tomcat 系统架构:连接器如何设计
java·系统架构·tomcat
程序员牛奶17 小时前
Project Loom:让 Java 高并发变得更简单
java·后端
NE_STOP17 小时前
Redis--简介及配置文件详解
java
sagima_sdu17 小时前
Codex 使用指南(技术向):App、CLI 与工作流接入
linux·运维·语言模型·json
XiYang-DING17 小时前
【Java EE】volatile关键字
java·单例模式·java-ee
圆山猫17 小时前
[Linux] 用 Buildroot 为 RISC-V QEMU 构建最小根文件系统
linux·运维·risc-v
小草儿79917 小时前
gbase8s之onatpe备份与恢复性能测试
linux·服务器·网络