在 CentOS(以及大多数 Linux 系统)上,nohup 本身不会主动让日志变大,它只是把程序的标准输出/错误重定向到文件(默认是 nohup.out)。日志变大的根本原因通常是程序在不断往里写内容。
下面按常见原因逐个说明:
nohup java -jar app.jar > nohup.out 2>&1 &
如果程序:
→ nohup.out 会快速增大。
✅ 解决:
> nohup.out,改用滚动日志2>&1
如果程序错误很多,stderr 也会写进同一个文件,体积翻倍。
✅ 建议:
nohup app > app.log 2> app.err &
nohup.out 默认不会自动切割,只会一直追加。
✅ 解决方式:
logrotate>> + 定时清理每次启动:
nohup xxx > nohup.out &
如果 nohup.out 没删,旧日志还在,新日志继续追加。
✅ 建议:
> nohup.out
nohup xxx >> nohup.out &
例如:
→ 日志指数级增长
✅ 检查:
tail -f nohup.out
如果:
nohup 同一命令→ 多进程并发写,日志暴涨
✅ 检查进程:
ps -ef | grep 程序名
如果你:
rm nohup.out
但进程没重启,文件描述符还在,磁盘占用不会释放,日志仍在写。
✅ 查看:
lsof | grep nohup.out
✅ 正确清空:
: > nohup.out
nohup app >> /var/log/app/app.log 2>&1 &
并配置:
/etc/logrotate.d/app
如果你愿意,可以把:
nohup.out 大小tail 出来的几行日志发出来,我可以直接帮你判断是哪一种原因。