Linux下启动java -jar 和nohup java -jar 的区别

首先java项目需要打包成jar包,然后上传到Linux系统中

这时我们在Linux系统中要cd到Jar包的路径

下面介绍几种启动jar包的方法
原文链接:https://blog.youkuaiyun.com/weixin_47406082/article/details/138731844

一、启动方法

1、java -jar xxx.jar
最常用的启动jar包命令,特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出

同时输出结果会在控制台上显示。适用于调试

2、java -jar xxx.jar &
&代表持续在后台运行 ,ctrl+c 后程序也会继续运行

同时输出结果会在控制台上显示。适用于调试

3、nohup java -jar xxx.jar &
nohup 即 no hang up 不挂断 ,关闭SSH客户端连接,程序不会中止运行

缺省情况下该项目的所有输出被重定向到nohup.out的文件中

适用于长期运行的项目

4、nohup java -jar xxx.jar >aaa.log &
输出重定向到aaa.log文件,即输出内容不打印到屏幕上,而是输出到aaa.log文件中

适用于长期运行的项目

二、参数介绍

1、nohup 和 &
使用&后台运行程序,结果会输出到终端。

使用Ctrl + C,程序免疫

关闭session,程序关闭

使用nohup运行程序,结果默认会输出到nohup.out

使用Ctrl + C,程序关闭

关闭session,程序免疫

平日线上经常使用nohup和&配合来启动程

### 使用 `nohup` 命令在后台运行 Java jar 包 为了确保 Java 应用程序能够在 Linux 或类 Unix 系统中持续运行而不受 SSH 连接中断的影响,可以使用 `nohup` 命令将应用程序置于后台运行。以下是实现这一目标的具体方法: #### 启动命令结构 基本的 `nohup` 命令格式如下: ```bash nohup java -jar your-application.jar > output.log 2>&1 & ``` - **`nohup`**: 防止因终端关闭而导致进程终止。 - **`java -jar your-application.jar`**: 启动指定的 JAR 文件作为 Java 应用程序。 - **`> output.log`**: 将标准输出重定向至名为 `output.log` 的文件中[^2]。 - **`2>&1`**: 将标准错误输出(stderr)重定向到标准输出流(stdout),从而统一记录日志[^4]。 - **`&`**: 表示将整个命令放入后台执行。 #### 日志管理 如果未显式定义输出文件,则默认的日志会被写入当前工作目录下的 `nohup.out` 文件[^3]。为了避免日志混乱或覆盖旧数据,建议始终手动设置一个特定名称的日志文件路径。 #### 查看与控制进程状态 可以通过以下方式监控已启动的应用程序及其关联的进程 ID (PID): 1. 列举所有正在运行的 Java 进程: ```bash jps ``` 2. 如果需要停止某个具体的服务实例,先找到对应 PID 并发送信号终止它: ```bash kill -9 <PID> ``` #### 实际操作案例 假设有一个 Spring Boot 打包好的应用叫做 `myapp.jar` 存在于 `/home/user/applications/` 路径下,完整的部署流程可能如下所示: 1. 移步至目标位置并清理残留历史进程; ```bash cd /home/user/applications/ ps aux | grep myapp.jar kill -9 $(pgrep -f myapp.jar) ``` 2. 正式启用新版本服务; ```bash nohup java -jar myapp.jar > app-log.txt 2>&1 & ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值