Fedora
/tmp 已滿但…為空
在 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