Ulimit
lsof -p <pid> | 有什麼區別?wc -l
和 ls /proc/<pid>/fd |wc -l
?
**背景:**我正在為特定使用者監視正在執行的程序的 ulimit。(我偶爾會看到以不正確的限制開始的程序。)我問了幾個自稱 Linux 專家,其中一個建議
lsof -p <pid>
,而另一個建議ls /proc/<pid>/fd
,但對於哪個更準確地反映了對最大值的實際計數都沒有肯定程序的打開文件限制。那麼,它是什麼?
lsof -p <pid> | wc -l
或者
ls /proc/<pid>/fd | wc -l
請詳細說明區別。謝謝!
lsof
還將為您提供記憶體映射的 .so 文件 - 從技術上講,這與應用程序可以控制的文件句柄不同。/proc/<pid>/fd
是打開文件描述符的測量點 - 但是:在 proc-man 頁面中提到 - 如果多執行緒程序的主執行緒已終止,則此目錄將不可用。
lsof -p <pid> | grep -v mem | egrep -v '^COMMAND PID' | wc -l
將向您顯示與 相同的項目ls /proc/<pid>/fd | wc -l
。記憶體映射在
/proc/<pid>/maps
.