温馨提示×

怎么修改nohup日志路径呢

小樊
40
2026-08-05 09:08:44
栏目: 编程语言

nohup 默认会把输出写到当前目录下的 nohup.out,但可以通过重定向环境变量来修改日志路径。下面按常见场景说明。


一、最常用:启动命令时重定向日志(推荐)

1️⃣ 修改标准输出和错误日志路径

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

含义:

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

这是最常用、最灵活的方式


2️⃣ 标准输出和错误输出分开

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

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

默认 > 会覆盖文件,如果想追加

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

三、使用 tee 同时输出到屏幕和日志(调试用)

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

四、如果已经启动的进程,怎么改日志路径?

⚠️ 不能直接修改 nohup.out 路径
但可以用下面方式“补救”:

方法 1:软链接(不推荐但简单)

ln -sf /path/to/log.log nohup.out

⚠️ 只对新写入有效,不一定稳定


方法 2:重新启动(最稳妥)

# 找到进程
ps -ef | grep your_command

# 杀掉
kill PID

# 用新日志路径启动
nohup your_command > /path/to/log.log 2>&1 &

五、结合 nohup + sh 的写法

nohup sh -c 'python app.py > /data/logs/app.log 2>&1' &

六、补充:环境变量(不常用)

nohup 不会通过环境变量修改日志路径,只能靠重定向。


七、总结(速查表)

需求 命令
修改日志路径 nohup cmd > /path/log 2>&1 &
追加日志 >>
输出/错误分开 > out.log 2> err.log
已运行进程 只能重启

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

  • 运行的是什么程序(Java / Python / Shell)
  • 一次性任务 还是 长期服务

我可以直接给你一条最合适的命令

0