温馨提示×

nohup日志路径怎么改

小樊
46
2026-07-10 01:14:52
栏目: 编程语言

nohup 默认会把标准输出和标准错误都写到当前目录下的 nohup.out,但这个路径是可以改的。常见改法如下:


一、最常用:重定向日志路径(推荐)

nohup your_command > /path/to/log.log 2>&1 &

说明:

  • > /path/to/log.log:标准输出写到指定文件
  • 2>&1:标准错误也合并到同一个文件
  • &:后台运行

这是最标准、最常用的方法


二、分别指定 stdout 和 stderr

nohup your_command > /path/to/out.log 2> /path/to/err.log &

适合想分开查看正常日志和错误日志的场景。


三、追加日志(而不是覆盖)

nohup your_command >> /path/to/log.log 2>&1 &

>> 表示追加,不会清空原日志。


四、如果你已经用了 nohup,但没重定向

默认路径是:

./nohup.out

或者(某些 shell / 系统):

$HOME/nohup.out

⚠️ nohup 本身没有参数可以“直接改路径”,只能通过重定向实现。


五、结合 nohup + 自定义日志目录(示例)

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

六、防止日志无限变大(进阶)

1️⃣ 用 rotatelogs(Apache 工具)

nohup your_command | rotatelogs /data/logs/app.%Y%m%d.log 86400 &

2️⃣ 用 logrotate 管理日志(生产环境推荐)


七、常见错误

❌ 这样是无效的

nohup your_command --log /path/to/log.log

除非程序本身支持 --log 参数,否则 nohup 不会识别。


总结一句话 ✅

nohup 改日志路径 = shell 重定向,不是 nohup 的参数

如果你愿意,可以把你的具体命令贴出来,我可以直接帮你改成最优写法。

0