温馨提示×

怎样关闭nohup日志

小樊
37
2026-09-15 16:12:20
栏目: 编程语言

nohup 命令默认会把输出写到当前目录的 nohup.out 文件里。如果你不想产生日志,或者想关闭/丢弃日志,可以用下面几种方式。


一、直接丢弃所有日志(最常用)

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

说明:

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

完全不产生 nohup.out


二、只保留错误日志,丢弃正常日志

nohup your_command > /dev/null 2>error.log &

三、指定自己的日志文件(不叫 nohup.out)

nohup your_command > my.log 2>&1 &

四、如果已经生成了 nohup.out,想停止写入

1️⃣ 清空日志(不删文件)

> nohup.out

truncate -s 0 nohup.out

2️⃣ 彻底不再写日志(改启动方式)

只能重新启动进程,用上面的 /dev/null 方式。


五、已经运行的进程如何“关日志”(进阶)

如果进程已经在跑,且没法重启:

# 找到进程 PID
ps -ef | grep your_command

# 清空它的 nohup.out
> /path/to/nohup.out

⚠️ 注意:

  • 文件还在,只是内容被清空
  • 进程仍然会往文件写,只是文件不增长太快

六、推荐做法(生产环境)

nohup your_command >> /var/log/app.log 2>&1 &

或配合 logrotate 管理日志。


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

  • 你用的是 Linux / macOS / 服务器
  • Python / Java / Shell / Node

我可以给你更精确的命令。

0