在 CentOS 上使用 nohup 启动程序时,日志通常会写入 nohup.out 或你指定的日志文件。随着时间推移,日志文件可能变得很大,占用磁盘空间。以下是安全清理 nohup 日志空间的几种常见方法:
如果你的程序正在往日志文件写内容,千万不要直接 rm 删除,否则进程可能仍然持有文件句柄,空间不会释放。
truncate(推荐)truncate -s 0 nohup.out
或指定日志文件:
truncate -s 0 /path/to/your.log
✅ 优点:
> nohup.out
或
cat /dev/null > nohup.out
同样使用:
truncate -s 0 app.log
⚠️ 注意:
rm app.log某些程序支持:
SIGUSR1 重新打开日志logrotate例如:
kill -USR1 <pid>
创建配置文件:
vim /etc/logrotate.d/myapp
内容示例:
/path/to/nohup.out {
size 100M
rotate 5
missingok
notifempty
copytruncate
}
说明:
copytruncate:拷贝后清空原文件(适合 nohup)手动测试:
logrotate -f /etc/logrotate.d/myapp
df -h
lsof | grep deleted
如果有 deleted 文件仍被进程占用:
✅ 立刻清理空间:
truncate -s 0 nohup.out
✅ 长期管理:
logrotate如果你愿意,可以告诉我:
我可以给你更精确的方案。