在 CentOS(以及大多数 Linux 系统)上,nohup 产生的日志文件变得很大,通常不是 nohup 本身的问题,而是由使用方式 + 程序行为 + 系统环境共同导致的。下面按常见原因逐一说明,并给出解决办法。
nohup java -jar app.jar > app.log 2>&1 &
时间一长,app.log 可能变成几个 GB。
nohup 只是忽略挂断信号(SIGHUP)stdout / stderr 都持续写入同一个文件✅ 这是“日志大”的根本原因
常见情况:
例如:
2026-01-21 10:00:00 DEBUG ...
2026-01-21 10:00:00 DEBUG ...
一天几十万行非常正常。
✅ 解决:
INFO → WARN)很多 Java / Python 程序:
nohup 再把这些控制台内容写进 nohup.out结果:一份日志存了两遍
如果你:
nohup command &
但没有重定向输出,默认会写:
nohup.out
如果:
nohup.out 就会越来越大
CentOS 自带 logrotate,但:
app.log 默认不会被轮转例如:
/var/log/app.log {
daily
rotate 7
compress
}
如果你日志在:
~/app.log
那 logrotate 根本不会管
rm 了日志,空间也不释放可用:
lsof | grep deleted
nohup app >> /var/log/app/app.log 2>&1 &
/var/log/app/*.log {
daily
rotate 7
compress
missingok
notifempty
}
systemctl start yourapp
日志交给 journalctl 管理
CentOS 上 nohup 日志很大,不是 nohup 的锅,而是“日志没人管 + 程序一直写”。
如果你愿意,可以把:
发出来,我可以帮你精确优化。