Jar包后台运行命令

本文详细介绍了如何使用IDEA的Maven打包生成Jar包,然后通过scp命令上传至服务器,并使用nohup命令实现Jar包的后台持续运行,以及输出日志管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

服务器完整运行 Jar 包流程

  1. 打包

    通过 IDEA 的 Maven 打包后生成 JAR包

  2. 上传

    通过 scp 命令上传至服务器

    scp [选项] [源文件] [目标]
    -r:递归复制整个目录。
    -P:指定远程主机上的端口号。
    -i:指定身份文件(私钥文件)。
    -v:详细模式,提供详细的调试信息。
    scp /Users/tong/Downloads/test.txt root@123.123.123.123:/root/Downloads/upload
    
  3. Jar包后台运行命令

    #进入到 jar 包目录直接命令
    nohup java -jar your.jar > output.log 2>&1 &
    
    • nohup: 这是"no hang up"的缩写,它是一个Unix/Linux命令,用于在后台运行命令,即使用户退出登录或终端关闭也不会影响该命令的执行。

    • java -jar your.jar: 这部分是执行Java JAR文件的命令。java是Java虚拟机的启动命令,-jar标志告诉虚拟机运行的是一个JAR文件,your.jar是你的JAR文件的名称。你需要将"your.jar"替换为实际的JAR文件名。

    • > output.log 2>&1: 这部分是将命令的标准输出(stdout)和标准错误输出(stderr)重定向到一个文件。>操作符用于将stdout重定向,2>&1用于将stderr重定向到与stdout相同的位置。这样,程序的输出就会被写入到"output.log"文件中。

    • &: 这个符号表示在后台运行命令,即使你关闭终端窗口,该命令也会继续运行。

### 如何以守护进程方式运行Java JAR 为了确保 Java 应用程序能够在 Linux 上作为一个可靠的后台守护进程运行,可以采用多种方法来实现这一点。以下是几种常见的方式: #### 方法一:使用 `nohup` 和 `&` 通过组合使用 `nohup` 命令以及将命令放到后台执行 (`&`) 的方式可以让应用程序持续运行而不受终端关闭的影响。 ```bash nohup java -jar your-application.jar > output.log 2>&1 & ``` 这条命令将会启动指定的 JAR 文件,并将其标准输出重定向到 `output.log` 文件中[^1]。 #### 方法二:利用 Shell 脚本创建守护进程 编写一个简单的 shell 脚本来封装上述命令,从而更方便地管理和控制服务的状态(如启动/停止)。下面是一个基本的例子: ```bash #!/bin/bash # /etc/init.d/my-java-app case "$1" in start) echo "Starting my-java-app" nohup java -jar /path/to/your-application.jar >> /var/log/my-java-app.log 2>&1 & ;; stop) echo "Stopping my-java-app" pkill -f "/path/to/your-application.jar" ;; esac exit 0 ``` 此脚本可以根据需要进一步扩展功能,比如添加状态查询等功能[^2]。 #### 方法三:借助 Spring Boot 提供的功能 对于基于 Spring Boot 开发的应用来说,官方推荐的方法之一是在构建过程中加入特定插件支持,使得应用可以直接作为 Unix/Linux 下的服务安装和管理。这不仅简化了部署流程,还提供了更好的日志记录机制和其他企业级特性。 当直接使用 `java -jar` 方式启动时,可以通过设置环境变量或参数选项来自定义行为,例如调整 JVM 参数、配置文件路径等。为了避免因 SSH 断开而导致进程意外退出的情况发生,同样建议配合 `nohup` 或者其他类似的工具一起使用[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值