温馨提示×

如何清理nohup日志文件

小樊
49
2026-09-21 17:53:58
栏目: 编程语言

清理 nohup 产生的日志文件(通常是 nohup.out)有几种常见、安全的方法,下面按推荐程度和使用场景说明。


一、最推荐:清空日志内容(不删除文件)

适合:程序仍在运行,不能删文件

> nohup.out

或:

cat /dev/null > nohup.out

✅ 优点

  • 不中断进程
  • 文件句柄不变
  • 程序继续写入该文件

二、使用 logrotate(生产环境推荐)

适合:长期运行的服务

示例配置 /etc/logrotate.d/myapp:

/path/to/nohup.out {
    size 100M
    rotate 5
    copytruncate
    missingok
    notifempty
}

✅ copytruncate 是关键,避免重启进程


三、直接删除(需谨慎)

适合:进程已停止

rm nohup.out

⚠ 注意

  • 如果进程还在运行,删除后日志不会自动重建
  • 日志可能写入已删除的 inode,磁盘空间不释放

四、运行时删除后重建(不推荐)

如果你误删了正在写入的 nohup.out:

ls -l /proc/<PID>/fd | grep nohup

可通过 fd 恢复或重启进程


五、从一开始避免问题(最佳实践)

1. 重定向到指定日志

nohup your_command > app.log 2>&1 &

2. 配合日志切割

  • logrotate
  • 或自己写定时脚本

总结建议

场景 推荐方式
程序运行中 > nohup.out
长期服务 logrotate
程序已停 rm
新项目 重定向日志

如果你愿意,可以告诉我:

  • 用的什么程序(Java / Python / Node)
  • 是否在服务器长期运行

我可以帮你写一个完整的日志清理方案。

0 踩