最近清理磁盘文件时,删除了一个nohup.out
文件,发现其占用的磁盘空间并没有被释放。最终找到关联的进程,杀掉进程后,磁盘空间才被释放。
使用ls -al
查看/proc
下的文件描述符(fd),发现它们是软连接(lr-x——),为什么删除掉文件后,磁盘空间没有被释放呢?
关联文章:记一次磁盘清理的过程
最近清理磁盘文件时,删除了一个nohup.out
文件,发现其占用的磁盘空间并没有被释放。最终找到关联的进程,杀掉进程后,磁盘空间才被释放。
使用ls -al
查看/proc
下的文件描述符(fd),发现它们是软连接(lr-x——),为什么删除掉文件后,磁盘空间没有被释放呢?
关联文章:记一次磁盘清理的过程
6 回答2.7k 阅读
2 回答1.9k 阅读✓ 已解决
1 回答3k 阅读✓ 已解决
2 回答1.9k 阅读✓ 已解决
2 回答1.6k 阅读
4 回答2k 阅读
2 回答1.4k 阅读✓ 已解决
因为在类 UNIX 系统中,当一个文件的 link count 减为零并且所有已打开的文件描述符全部关闭、所有 mmap 的部分全部 unmap 时,系统才会真正将该文件占用的存储空间标记为未使用。这和 Windows 使用的策略是不一样的。
PS: 这个属于类 UNIX 系统基本常识了。提问者要多加了解和学习啊。
PPS: 日志还是直接交给 syslog 吧,然后用 logrotate 轮转,就不用自己处理各种麻烦事了。