Fedora

/tmp 已滿但…為空

  • July 24, 2020

在 Python 程序中,我使用np.memmaps,它利用/tmp目錄來處理大量數組。每次使用此程式碼時,我都會/tmp定期執行以確保定期清除。rm -rf /tmp/*然而最近,我的程式碼停止工作並給我一個“匯流排錯誤(核心轉儲)”。

現在,即使在終端中使用自動完成也會導致:bash: cannot create temp file for here-document: No space left on device.

df -h我認為,打字給了我罪魁禍首:

tmpfs            32G   32G     0 100% /tmp

然而,跑步sudo rm -rf /tmp/*只會讓我回到

tmpfs            32G   30G  1,9G  94% /tmp

知道發生了什麼以及如何解決它嗎?

這個命令會讓你了解真相:

sudo lsof -n | grep /tmp |grep deleted

在 Unix 中,已刪除的文件仍然存在於文件系統中並在其中佔用空間,直到使用它們的應用程序關閉文件或該應用程序終止。

因此,找到打開已刪除文件的程序並重新啟動或終止它們。

強制關閉上述文件描述符而不終止使用它們的應用程序會很棒,但 Linux 核心不支持revoke()系統呼叫:https ://bugzilla.kernel.org/show_bug.cgi?id=14505

引用自:https://unix.stackexchange.com/questions/600186