Linux

殺死已刪除的文件並清理記憶體記憶體

  • March 7, 2019

我想知道如果殺死刪除程序,有時我們會從許多已刪除文件中得到清理記憶體記憶體,那麼殺死它們是否可以提供更多可用記憶體?

例子:

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

請注意,不會刪除程序,僅刪除了引用這些文件的目錄條目。

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