Linux
殺死已刪除的文件並清理記憶體記憶體
我想知道如果殺死刪除程序,有時我們會從許多已刪除文件中得到清理記憶體記憶體,那麼殺死它們是否可以提供更多可用記憶體?
例子:
lsof | grep delete lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/42/gvfs Output information may be incomplete. cupsd 1619 root 10r REG 253,0 2979 38250477 /etc/passwd+ (deleted) gnome-set 5731 gdm 14r REG 253,0 65536 51102558 /etc/pki/nssdb/cert8.db;5c644c01 (deleted) gnome-set 5731 gdm 16r REG 253,0 16384 51197440 /etc/pki/nssdb/key3.db;5c644c01 (deleted) pool 5731 5795 gdm 14r REG 253,0 65536 51102558 /etc/pki/nssdb/cert8.db;5c644c01 (deleted) kill 1619
我們擔心被刪除的程序是否會消耗記憶體
我們還可以看到以下內容:
lsof | grep deleted | wc -l 3421
通常程序會明確創建和打開文件並直接將其刪除,以便可以更安全地使用文件,並確保在程序結束時刪除文件。
簡而言之,這是一個功能;特別是對於您在問題中顯示的文件。殺死這些程序會干擾系統的工作。
在某些情況下,仍然打開已刪除的文件可能是一個錯誤(例如,程序正在寫入日誌文件,但日誌文件被壓縮和刪除,而沒有發出重新打開日誌文件的信號)。您可以通過文件系統截斷此類文件:如上圖所示
/proc/
找到文件描述符編號,然後執行截斷文件(12345 是程序 ID,123 是文件描述符編號。但這很少需要。lsof``> /proc/12345/fd/123
請注意,不會刪除程序,僅刪除了引用這些文件的目錄條目。