nohup java -jar 文件名

在 Linux/Unix 系统中,nohup java -jar 是常用的后台启动 Java 应用的命令,其标准格式通常为 nohup java -jar your-app.jar > nohup.log 2>&1 &。下面详细解析其各部分及操作方法和注意事项:

命令各部分详解

  • nohup:该命令用于忽略挂起信号(SIGHUP),当用户退出终端或者终端被关闭时,正在运行的程序不会受到影响而继续在后台运行。
  • java -jar your-app.jar :这是执行 Java 应用程序的核心部分。java -jar 是 Java 提供的用于运行可执行 JAR 文件的命令,your-app.jar 需要替换为实际要运行的 JAR 文件的名称。
  • > nohup.log :这是输出重定向操作。它将命令的标准输出(stdout)重定向到指定的 nohup.log 文件中。也就是说,程序运行过程中产生的正常输出信息不会显示在终端屏幕上,而是被写入到 nohup.log 文件里。如果不指定文件名,默认会在当前目录创建 nohup.out 文件。若当前目录的 nohup.out 文件不可写,输出会重定向到 $HOME/nohup.out 文件中。若没有文件能创建或打开以用于追加,那么该命令不可调用 。
  • 2>&1 :这是将标准错误输出(stderr)重定向到标准输出(stdout),也就是将程序运行过程中产生的错误信息也一并写入到 nohup.log 文件中。
  • &:该符号表示将命令放到后台执行,这样在执行该命令后,终端可以继续接受并执行其他命令,不会被当前的 Java 程序阻塞。

操作示例

假设要在后台启动一个名为 myapp.jar 的 Java 应用,并将输出信息保存到 myapp.log 文件中,可以使用以下命令:

bash 复制代码
nohup java -jar myapp.jar > myapp.log 2>&1 &

执行该命令后,程序将在后台启动运行,输出信息会被记录到 myapp.log 文件中。

注意事项

  • 文件路径 :确保 your-app.jar 文件的路径正确。如果 JAR 文件不在当前工作目录下,需要使用绝对路径或相对路径来指定其位置。
  • 文件权限 :要保证当前用户对指定的输出文件(如 nohup.log)有写入权限,否则会出现输出重定向失败的问题。如果没有权限,可以使用 chmod 命令修改文件权限。
  • 日志查看 :可以使用 tail -f nohup.log 命令实时查看程序的输出日志,以便监控程序的运行状态。
  • 进程管理 :使用 ps -ef | grep java 命令可以查看当前系统中正在运行的 Java 进程,通过 kill 命令可以终止指定的 Java 进程。

以服务形式管理

另外,还可以将该 Java 程序以服务的形式进行管理,创建一个以 "服务名.service" 格式命名的文件,文件内容参考如下 :

plaintext 复制代码
[Unit]
Description: 描述服务
After: 描述服务类别

[Service]
Type=forking
ExecStart=/绝对路径/java -jar /绝对路径/your-app.jar > /绝对路径/nohup.log 2>&1
ExecReload=/绝对路径/重启脚本路径
ExecStop=/绝对路径/停止脚本路径
PrivateTmp=true

[Install]
WantedBy=multi-user.target

注意启动、重启、停止命令全部要求使用绝对路径,因为需要找到该服务对应的启动、重启、停止脚本。

相关推荐
我命由我123452 小时前
Android Studio - Android Studio 自定义预览尺寸
android·java·ide·java-ee·android studio·android-studio·android runtime
充钱大佬3 小时前
Python测试基础教程
python·log4j·apache
咖啡八杯3 小时前
GoF设计模式——迭代器模式
java·后端·设计模式·迭代器模式
AIGS0013 小时前
企业AI落地的关键认知:向量空间JBoltAI的本体语义平台
java·人工智能·人工智能ai大模型应用
KaMeidebaby4 小时前
卡梅德生物技术快报|抗体亲和力成熟工业化调控新机制:差异性浆细胞增殖工艺优化思路
java·开发语言·人工智能·算法·机器学习·架构·spark
初心丨哈士奇5 小时前
Python 四大基础容器|列表篇
python
醉城夜风~6 小时前
Java详解经典算法题:接雨水(三种实现方案+原理剖析)
java·开发语言·算法
明理的信封6 小时前
AI 基础设施的“去 Python 化“:Rust 与 C# 的两条替代路径
人工智能·python·rust
数智化转型推荐官7 小时前
2026统一身份管理系统五大发展趋势解读
java·运维·微服务
看菜鸡互7 小时前
探索用 SlideML 让大模型生成 PPT 的实验方法
java·运维