温馨提示×

如何屏蔽nohup日志

小樊
58
2026-09-24 19:42:28
栏目: 编程语言

在 Linux 中,nohup 默认会把程序输出写入 nohup.out 文件。如果你不想产生 nohup 日志,或者想屏蔽/丢弃日志,可以用下面几种常见方式。


一、直接丢弃所有输出(最常用 ✅)

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

说明:

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

✅ 完全不产生 nohup.out


二、只丢弃标准输出,保留错误日志

nohup your_command > /dev/null &

或:

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

三、输出到指定日志文件(不叫 nohup.out)

nohup your_command > my.log 2>&1 &

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

方法 1:清空日志(不删除文件)

> nohup.out

方法 2:直接删除(程序继续跑)

rm -f nohup.out

⚠️ 注意:
有些程序会持有文件句柄,删除后磁盘空间不会立即释放,但不再增长。


五、更现代的做法(推荐)

使用 setsid(不依赖 nohup)

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

或使用 disown

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

六、总结(快速选择)

需求 命令
完全无日志 nohup cmd > /dev/null 2>&1 &
只留错误 nohup cmd > /dev/null &
自定义日志 nohup cmd > app.log 2>&1 &
不写 nohup.out 重定向输出即可

如果你能告诉我具体命令或场景(如 Python / Java / Shell 脚本),我可以给你更精准的写法。

0 踩