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 &
相关推荐
松仔log17 小时前
JetPack——Paging3+Room
android·java·zoom
2401_868534781 天前
分析RTOS与Linux有什么区别
linux·运维·服务器
玛丽莲茼蒿1 天前
Linux/Unix学习笔记(四)—— 进程管理
linux·学习·unix
Lei活在当下1 天前
先用起来,再理解,关于协程Coroutine应该知道的事
android·java·jvm
Peace1 天前
【Nginx】
linux·运维·nginx
Java爱好狂.1 天前
Java程序员体系化学习路线(2026最新版)
java·后端·java面试·java架构师·java程序员·java八股文·java学习路线
网络与设备以及操作系统学习使用者1 天前
Linux与Windows核心差异深度解析
linux·运维·网络·windows·学习
tongluowan0071 天前
以ReentrantLock为例解释AQS的工作流程
java·模板方法模式·aqs·reentrantlock
装不满的克莱因瓶1 天前
SpringBoot 如何将 lib 目录中jar包打包进最终的jar包里面
spring boot·后端·maven·jar·mvn
筠筠喵呜喵1 天前
Linux CPU性能优化:D状态和Z状态排查与处理
linux·服务器·性能优化