为(已删除的).xsession-errors 文件分配过多磁盘空间的进程

为(已删除的).xsession-errors 文件分配过多磁盘空间的进程

我的根磁盘已满,我怀疑是因为磁盘空间被膨胀的 .xsession-errors 文件锁定了。膨胀是由正在运行的进程导致的,这些进程使错误文件保持打开状态并将数据转储到其中,即来自几个不同应用程序的 PID,例如,chromium 是最大的罪魁祸首。我怀疑是这种情况,因为 lsof | grep removed 返回如下行:

chromium- 27607  user  2w  REG 8,1 1809493864448  108527952 /home/user/.xsession-errors (deleted)
chromium- 27762  user  2w  REG 8,1 1809493864448  108527952 /home/user/.xsession-errors (deleted)

这里的转折是,我设置了一个 cron 作业来删除文件 home/user/.xsession-errors,这是针对此问题的建议解决方法。您可以想象,当 chromium 打开无数进程时,这种情况会如何快速运行模拟!我使用的是 64 位 UBUNTU 12.04 机器,具有以下 HD (EXT4) 配置:

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       1.8T   34G  1.7T   2% /
udev             12G  4.0K   12G   1% /dev
tmpfs           4.8G  1.2M  4.8G   1% /run
none            5.0M   16K  5.0M   1% /run/lock
none             12G  2.1M   12G   1% /run/shm
/dev/sde1       1.8T  450G  1.3T  26% /media/SEA2T
/dev/sdd1       2.7T  201M  2.6T   1% /media/BUFF3T
/dev/sdb        3.6T  118G  3.3T   4% /media/INDAR
/dev/sdc        3.6T  3.0T  469G  87% /media/ALAYA

我到目前为止所做的努力都无济于事:

  1. 是否可以回收这个空间?显然我的情况不行,尽管其他人设法截断了文件以释放磁盘。
  2. 由于这似乎是一种虚拟事件,没有真正的文件作为罪魁祸首,因此重新启动对我来说是可行的选择。
  3. 如何确保这种情况不再发生?我仍然不知道。目前的解决方法是将ERRFILE文件中的变量设置/etc/X11/Xsession/tmp/$USER-xsession-errors

以便弄清楚这个错误文件中转储了什么。我很感激任何关于如何一劳永逸地处理失控的 xsession-errors 文件的建议!提前致谢。

答案1

您可能能够通过ls -l /proc/<PID>/fd/*(dangerous) 访问该文件,一旦确定了 fd 号,就使用truncate /proc/<PID>/fd/<fd> --size 0(even more dangerous) 截断它。这是重新启动或终止进程的替代方法。但是,很难说对这样一个残缺的文件进行后续写入时会发生什么。

您真正应该做的是找出写入该文件的内容以及原因,并采取一切必要措施阻止它这样做。即使忽略存储问题,写入调试日志也很昂贵并且会影响性​​能。因此您应该找到根本原因。

相关内容