我有一個在服務器上運行的進程的30個實例,並且想記錄每個進程的打開文件以進行分析。lsof應該爲一組pid提供所有打開的文件
我運行以下命令:
* ps auwwx | grep PROG_NAME | awk '{print $2}' | xargs lsof -p | less
它抱怨,「lsof的:對狀態錯誤:沒有這樣的文件或目錄」
但是,如果我跑lsof -p <pid>
它給了我該進程的打開文件列表。如何獲得FreeBSD機器上所有30個進程實例的所有打開文件的列表。
此外,我不希望共享庫被列出。如果我做-d "^txt"
它不顯示我想要顯示的其他數據庫文件。有沒有其他的方法來清理.so文件?
FYI:我想解決類似的問題 - 計數打開的文件數每個進程,特別是Java。我這樣做了:'pgrep java | xargs -I {} bash -c'printf {}; lsof -p {} | wc -l'' –