温馨提示×

nohup日志如何配置路径

小樊
43
2026-08-20 10:23:26
栏目: 编程语言

nohup 本身没有专门的“日志路径配置参数”,它的日志输出路径是通过 shell 重定向 来控制的。下面按常见场景给你说明。


一、默认行为(不配置路径)

nohup java -jar app.jar &

默认会生成:

nohup.out

位置:当前执行命令的目录


二、指定日志路径(推荐做法 ✅)

1️⃣ 重定向标准输出和错误输出

nohup java -jar app.jar > /data/logs/app.log 2>&1 &

含义:

  • >:标准输出
  • 2>&1:错误输出也写入同一个文件
  • &:后台运行

最常用


2️⃣ 分别输出 stdout 和 stderr

nohup java -jar app.jar \
> /data/logs/app.out \
2> /data/logs/app.err &

适合需要区分正常日志和错误日志的场景。


3️⃣ 追加日志(而不是覆盖)

nohup java -jar app.jar >> /data/logs/app.log 2>&1 &

默认 > 会覆盖,>> 是追加


三、结合 date 生成按日期的日志路径

nohup java -jar app.jar > /data/logs/app-$(date +%Y%m%d).log 2>&1 &

或:

nohup java -jar app.jar > /data/logs/app-$(date +%F).log 2>&1 &

四、日志目录不存在怎么办?

建议先创建目录:

mkdir -p /data/logs

否则 nohup 可能失败或回退到 nohup.out


五、查看后台任务

jobs

或:

ps -ef | grep app.jar

六、常见误区 ❌

❌ 以为 nohup--log 参数
✅ 实际是 shell 重定向

❌ 日志路径写成相对路径却找不到
✅ 用绝对路径更稳妥


七、推荐标准写法(生产环境)

nohup java -jar app.jar \
> /data/logs/app.log \
2>&1 &

如果你愿意,可以告诉我:

  • Java / Python / Shell
  • 是否需要 按天切分日志
  • 是否在 Docker / Kubernetes

我可以帮你给出更合适的日志方案(比如 logrotatecronolog)。

0