我有一个在服务器上运行的进程的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'' –