在 Debian 下用 nohup 启动程序时,日志通常写在:
nohup.out(默认)nohup cmd > app.log 2>&1 &下面是常见且安全的清理方式。
truncate(最推荐)truncate -s 0 nohup.out
或
truncate -s 0 app.log
✅ 优点:
> nohup.out
或
: > nohup.out
⚠️ 注意:不要直接 rm nohup.out,否则程序可能继续往已删除文件写,磁盘不释放。
du -sh nohup.out
lsof | grep deleted
如果看到 deleted 状态:
# 找到进程
ps aux | grep 程序名
然后:
truncate -s 0 /proc/进程ID/fd/1
rm nohup.out
❌ 风险:
logrotate示例 /etc/logrotate.d/myapp:
/root/app.log {
size 100M
rotate 5
compress
missingok
notifempty
copytruncate
}
copytruncate 很关键,适合 nohup 程序。
nohup ./app >> app.log 2>&1 &
配合 logrotate 使用最佳。
| 场景 | 命令 |
|---|---|
| 安全清空 | truncate -s 0 nohup.out |
| 定期管理 | logrotate + copytruncate |
| 禁止操作 | 直接 rm nohup.out |
如果你愿意,可以告诉我:
nohup.out 还是自定义日志我可以给你最合适的清理方案。