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 &
相关推荐
东东的脑洞5 分钟前
【面试突击四】JAVA基础知识-线程池与参数调优
java·面试
小股虫5 分钟前
Tair Java实操手册:从零开始的缓存中间件入门指南
java·缓存·中间件
Wyy_9527*12 分钟前
Spring三种注入方式对比
java·后端·spring
shepherd11114 分钟前
从入门到实践:玩转分布式链路追踪利器SkyWalking
java·后端·架构
最贪吃的虎16 分钟前
网络是怎么传输的:从底层协议到浏览器访问网站的全过程剖析
java·开发语言·网络·http·缓存
uup16 分钟前
CompletableFuture 异常吞噬:异步任务异常未处理导致结果丢失
java
Lynnxiaowen18 分钟前
今天我们继续学习devops内容基于Jenkins构建CICD环境
linux·运维·学习·jenkins·devops
用户61354114601620 分钟前
Linux 麒麟系统安装 gcc-7.3.0 rpm 包步骤
linux
小尧嵌入式21 分钟前
Linux网络介绍网络编程和数据库
linux·运维·服务器·网络·数据库·qt·php
有一个好名字24 分钟前
设计模式-工厂方法模式
java·设计模式·工厂方法模式