我删除了切片上的一个目录mmf
,但它又回来了 - 大小仍然相同,而且还在不断增加。删除该目录的原因是我找不到链接到在该目录上创建日志的进程。
现在为 82%,并且每 2 小时不断增加。
有没有办法识别进程并杀死它?我可以重新启动盒子来释放创建这些文件的进程吗?
答案1
您必须找到正在写入未链接(未删除!)文件的进程。所有 Unix 和类 Unix 操作系统都允许进程保留目录中没有名称的打开文件。这是 Unix 文件系统设计的结果,其中保存文件数据(inode)的权限和磁盘块的磁盘数据结构与名称和目录位置不同。这就是系统调用的原因unlink(const char *pathname)
- 系统调用所做的只是删除文件的可能多个名称之一。如果一个进程打开了一个文件,您并没有删除该文件,只是删除了它的名称。
您必须以某种方式找到该进程,并使其退出。我已经有一段时间没有使用 Solaris 了。我知道有时 Solaris 机器已lsof
安装 - 您可能可以使用它来查找有问题的进程。 Solaris 有一个/proc
文件系统,但用于/proc
查找打开的文件并不像在 Linux 下那么容易。重新启动可以解决问题,但这似乎是一个严厉的措施。