温馨提示×

如何关闭nohup日志

小樊
35
2026-07-10 00:59:50
栏目: 编程语言

nohup 运行时默认会把输出写到当前目录下的 nohup.out 文件。关闭或避免产生日志,一般有几种方式,取决于你的需求。


一、完全不记录输出(最常用 ✅)

把标准输出和错误输出都重定向到 /dev/null

nohup your_command > /dev/null 2>&1 &

说明:

  • > /dev/null:标准输出丢弃
  • 2>&1:错误输出也丢弃
  • &:后台运行

不会生成 nohup.out


二、只关闭标准输出,保留错误日志

nohup your_command > /dev/null &

或:

nohup your_command 1>/dev/null &

三、只关闭错误输出,保留标准输出

nohup your_command 2>/dev/null &

四、关闭 nohup.out,但输出到指定日志文件

nohup your_command > app.log 2>&1 &

适合需要日志但不想用 nohup.out 的情况。


五、已运行程序,如何关闭 nohup.out?

nohup.out 一旦生成,不能直接“关闭”,但可以:

1️⃣ 清空 nohup.out(不停止进程)

: > nohup.out

或:

truncate -s 0 nohup.out

2️⃣ 让进程不再写入(不推荐,风险高)

  • 使用 gdb / fd 重定向
  • 生产环境不建议

推荐:重启程序并使用 /dev/null


六、使用 setsid(替代 nohup,无 nohup.out)

setsid your_command > /dev/null 2>&1 &

七、总结(推荐方案)

需求 命令
完全不要日志 nohup cmd > /dev/null 2>&1 &
自定义日志 nohup cmd > app.log 2>&1 &
替代 nohup setsid cmd > /dev/null 2>&1 &

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

  • 你用的是 Linux / macOS
  • 程序是 Java / Python / Shell / Node

我可以给你一个更精确的示例。

0