温馨提示×

debian nohup日志怎么清理

小樊
38
2026-10-16 06:15:32
栏目: 智能运维

在 Debian(或其他 Linux)里,nohup 本身只是“忽略挂断信号”,真正的日志是你自己重定向出来的,比如:

nohup python app.py > app.log 2>&1 &

所以“清理 nohup 日志”本质就是清理这些重定向的日志文件。


一、最常用:清空日志但不删除文件(推荐)

1️⃣ 使用 truncate

truncate -s 0 app.log

2️⃣ 使用 >

> app.log

3️⃣ 使用 cat /dev/null

cat /dev/null > app.log

✅ 优点:

  • 程序继续写日志,不会报错
  • 文件还在,权限不变

二、直接删除日志文件(不推荐)

rm -f app.log

⚠️ 问题:

  • 如果程序还在运行,nohup 进程仍持有文件句柄
  • 磁盘空间不会立即释放
  • 新日志可能写不进去或写到奇怪的地方

✅ 只适合:程序已停止


三、程序还在运行,想“彻底释放空间”

方法 1(推荐):清空文件(见上面)

> app.log

方法 2:重启进程

# 找到进程
ps -ef | grep app.py

# 杀掉
kill -9 PID

# 重新启动
nohup python app.py > app.log 2>&1 &

四、自动清理(防止日志爆炸)

1️⃣ 使用 logrotate(最推荐)

示例 /etc/logrotate.d/app:

/var/log/app.log {
    size 50M
    rotate 5
    compress
    missingok
    notifempty
    copytruncate
}

✅ copytruncate 对 nohup 进程非常友好


2️⃣ 临时方案:crontab 定期清空

0 3 * * * truncate -s 0 /home/user/app.log

五、常见错误

❌ 直接 rm 后空间没释放
✅ 用 lsof | grep deleted 查看

❌ 用 vim 改 nohup.out
✅ 用 > nohup.out


六、如果你用的是 nohup.out

> nohup.out

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

  • 日志文件路径
  • 是否进程还在运行
  • 是否是 Java / Python / Node

我可以给你最合适的清理方案。

0 踩