温馨提示×

nohup日志过大怎么处理

小樊
41
2026-10-03 12:59:44
栏目: 编程语言

nohup 默认会把程序输出写到 nohup.out,时间一长很容易变得非常大。常见处理方式如下:


一、启动时就避免日志无限增长(推荐)

1. 重定向到指定日志文件(可控)

nohup your_command > app.log 2>&1 &

2. 按大小或时间轮转(最推荐)

使用 logrotate(系统级,最稳妥)

示例 /etc/logrotate.d/myapp:

/path/to/app.log {
    size 100M
    rotate 5
    compress
    missingok
    notifempty
    copytruncate
}
  • copytruncate:不重启进程直接截断日志(适合 nohup)
  • 配合 crontab 自动执行

二、已经产生超大 nohup.out 的处理

1. 安全清空(不删文件,进程继续写)

: > nohup.out
# 或
truncate -s 0 nohup.out

⚠️ 不要直接 rm nohup.out,进程仍持有文件句柄,磁盘不会释放

2. 打包备份后清空

mv nohup.out nohup.out.bak
: > nohup.out
# 后续可压缩或删除 bak

三、不想要日志(谨慎)

nohup your_command > /dev/null 2>&1 &

四、更好的长期方案(替代 nohup)

  • systemd service(自带日志管理 journalctl)
  • supervisor
  • pm2(Node 项目)

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

  • 是什么程序(Java / Python / 脚本)
  • 是否在服务器长期运行
  • 是否有 root 权限

我可以给你一套最合适的日志方案。

0 踩