在 CentOS 上用 nohup 启动程序时,日志文件不断变大通常是下面这些原因导致的,非常常见:
nohup 默认会写日志你大概率是这样启动的:
nohup java -jar app.jar &
或:
nohup ./start.sh &
nohup 会把标准输出(stdout)和标准错误(stderr)写入:nohup.out
nohup.out 就会无限增长✅ 这是“正常但危险”的行为
例如:
即使你重定向了日志,只要程序在打,文件就会变大。
CentOS 默认:
nohup.out 不会被自动切割/var/log/messages 有 logrotate结果就是:
nohup.out 几个 G 很常见如果你这样操作:
nohup java -jar app.jar >> nohup.out &
每次启动都 追加写入,文件只会越来越大。
nohup 的本意就是:
断开终端后程序继续运行
所以日志持续增大,本身说明:
✅ 程序在正常运行
❌ 但日志管理方式不对
nohup java -jar app.jar > app.log 2>&1 &
或按天:
nohup java -jar app.jar >> app_$(date +%F).log 2>&1 &
示例 /etc/logrotate.d/app:
/opt/app/app.log {
daily
rotate 7
compress
missingok
notifempty
copytruncate
}
⚠️ 注意:copytruncate 对 nohup 日志非常关键
这样 nohup.out 几乎不增长
nohup ./app > /dev/null 2>&1 &
CentOS 上 nohup 日志变大,不是 bug,而是你没管日志。
如果你愿意,可以把:
发出来,我可以帮你定制一套不爆盘的日志方案。