84669 person learning
152542 person learning
20005 person learning
5487 person learning
7821 person learning
359900 person learning
3350 person learning
180660 person learning
48569 person learning
18603 person learning
40936 person learning
1549 person learning
1183 person learning
32909 person learning
最近清理磁盘文件时,删除了一个nohup.out文件,发现其占用的磁盘空间并没有被释放。最终找到关联的进程,杀掉进程后,磁盘空间才被释放。
nohup.out
使用ls -al查看/proc下的文件描述符(fd),发现它们是软连接(lr-x——),为什么删除掉文件后,磁盘空间没有被释放呢?
ls -al
/proc
关联文章:记一次磁盘清理的过程
光阴似箭催人老,日月如移越少年。
因为在类 UNIX 系统中,当一个文件的 link count 减为零并且所有已打开的文件描述符全部关闭、所有 mmap 的部分全部 unmap时,系统才会真正将该文件占用的存储空间标记为未使用。这和 Windows 使用的策略是不一样的。
PS: 这个属于类 UNIX 系统基本常识了。提问者要多加了解和学习啊。PPS: 日志还是直接交给 syslog 吧,然后用 logrotate 轮转,就不用自己处理各种麻烦事了。
因为在类 UNIX 系统中,当一个文件的 link count 减为零并且所有已打开的文件描述符全部关闭、所有 mmap 的部分全部 unmap时,系统才会真正将该文件占用的存储空间标记为未使用。这和 Windows 使用的策略是不一样的。
PS: 这个属于类 UNIX 系统基本常识了。提问者要多加了解和学习啊。
PPS: 日志还是直接交给 syslog 吧,然后用 logrotate 轮转,就不用自己处理各种麻烦事了。